2011-09-28 62 views
1

我有一个格式为MM/DD/YYYY的字符串。JavaScript中的日期转换帮助

有人能告诉我如何将其转换为:2011年1月1日?

+0

你想只用英文还是用本地语言? –

+0

此外,可能重复http://stackoverflow.com/questions/1643320/get-month-name-from-date-using-javascript –

+0

只有英文。谢谢! – Zoolander

回答

2
var str = "01/01/2011", 
date = new Date(str), 
months = ["January", "February", "March", "April", "May", "June", 
      "July", "August", "September", "October", "November", "December"], 
converted = months[date.getMonth()] + " " + 
      date.getDate() + ", " + date.getFullYear(); 

See it in action

4

如果你还没有,看看date.js -

http://www.datejs.com/

它的任何日期相关的功能是伟大的,并有吨的例子在他们的网站做的一切你能想象。

更新:好有些人怀疑我疯狂的skillz编码:)

<script src="http://www.datejs.com/build/date.js" type="text/javascript"></script> 

<script language="Javascript"> 
    var d = Date.parse('03/08/1980'); 
    window.alert(d.toString('MMMM d, yyyy')); 
</script> 
+0

尽管答案中没有代码,但对于我不了解的有用资源+1,! –

+2

如果你推荐一个图书馆来做到这一点,你至少应该展示如何去做这个人的要求。如果您编辑以显示如何使用date.js执行此操作,我会取消我的downvote。 –

+0

公平,更新.. –

1
var str = "1/1/2011"; 

var monthNames = [ "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December" ];  
var parts = str.split("/"); 
var formatted = monthNames[parseInt(parts[0], 10)-1] + " " + parts[1] + ", " + parts[2]; 
1

我希望这有助于

var dat = new Date("01/01/2011"); 
var monthNames = [ "January", "February", "March", "April", "May", "June","July", "August", "September", "October", "November", "December" ]; 
var stringDate = monthNames[dat.getMonth()] + ", " + dat.getDate() + ", " + dat.getFullYear(); 
1

我写了一个最新的图书馆类似DateJS,只有它的体积更小,速度更快,而且不会修改Date.prototype。它处理解析,操作和格式化,包括timeago。

我看到你只需要英语,但是在underscore.date中支持i18n。

https://github.com/timrwood/underscore.date

随着underscore.date,这是你将如何解决你的问题。

_date('01/01/2011', 'MM/DD/YYYY').format('MMMM D, YYYY'); 
+0

那么'MMMM'返回月份的名字? –

+0

正确,MMMM =月份的全名,MMM =月份的缩写名称。所有替换密钥均位于https://github.com/timrwood/underscore.date的文档中 – timrwood