2011-08-18 98 views
3

如何将这样的字符串转换回日期对象?JavaScript将日期字符串转换为日期

"Thu Aug 18 2011 15:13:55 GMT-0400 (Eastern Daylight Time)" 

是否有存储在javascript日期的更天然的方式?

+5

*叹*男人,没有人会努力寻找答案。这种类型的问题已经在这里和网络上的许多其他地方得到了回答。 –

+2

geez。我刚刚检查并注意到网上所有内容都至少回答过一次,所以让我们关闭此主板,因为它不会为社区增加任何内容。更好的是,让它继续下去,并告诉人们RTFM,并将它们引用到谷歌。 –

+0

努力在这里受到赞赏。它会得到更好的答案。奇怪,但是是真的。 :) –

回答

2

http://www.w3schools.com/jsref/jsref_obj_date.asp提供了一些见解,只是将其打包并发送,你会发现各种提供的方便。

var d = new Date(year, month, day, hours, minutes, seconds, milliseconds); 
+0

有没有格式,我可以存储为字符串,然后转换回js对象,没有所有的打包和解包? –

+0

yup,http://www.w3schools.com/jsref/jsref_parse.asp –

12

我在IE7,IE8,IE9,Chrome和Firefox的测试6本:

new Date('Thu Aug 18 2011 15:13:55 GMT-0400 (Eastern Daylight Time)'); 

和它的作品。

+2

在IceWeasel 3.5.6中不起作用。 – FiringSquadWitness

0

如果您的日期总是处于标准格式(当然),您可以根据空格字符拆分为数组,然后从数组中的项中创建一个日期对象。

也许不是最好的方法,但如果你的地址是标准化的,它可能不会太糟糕,并且可能相当快实施/执行。 :)

0

Date.parse(您的日期字符串)返回自1970年1月1日,00:00:00 UTC以来的毫秒数。存储这个号码。当你想显示一个日期时,使用新的日期(theNumber)。例如:

var milliseconds = Date.parse("Thu Aug 18 2011 15:13:55 GMT-0400 (Eastern Daylight Time)"); 
// milliseconds == 1313694835000 


alert(new Date(milliseconds)); 
// alerts Thu Aug 18 2011 15:13:55 GMT-0400 (Eastern Daylight Time) 
0

Date对象相当宽松,因此您可以直接在新对象中使用该字符串。

http://www.w3schools.com/js/js_obj_date.asp

new Date("Thu Aug 18 2011 15:13:55 GMT-0400 (Eastern Daylight Time)") 

我这样说了很多,但是当涉及到这样的事情,它总是真棒在浏览器控制台进行实验,并真正体会了什么对象是能够做到的事情..快乐的编码!