如何在Javascript中将字符串转换为日期

时间:2010-05-05 00:44:46

标签: javascript string date

我怎么能打开这个字符串

Sun Apr 25, 2010 3:30pm

进入JavaScript中的有效日期(最小代码是我的目标)?

3 个答案:

答案 0 :(得分:3)

Date.parse几乎可以获得你想要的东西。它在am / pm部分窒息,但有一些黑客行为,你可以让它工作:

var str = 'Sun Apr 25, 2010 3:30pm',
    timestamp;

timestamp = Date.parse(str.replace(/[ap]m$/i, ''));

if(str.match(/pm$/i) >= 0) {
    timestamp += 12 * 60 * 60 * 1000;
}

Minicode看起来像这样:

var s = 'Sun Apr 25, 2010 3:30pm';

Date.parse(s.slice(0,-2))+432E5*/pm$/.test(s);

答案 1 :(得分:2)

你可以试试Datejs http://www.datejs.com/ 这不需要你编写很多代码,但需要在你的html中包含这个脚本。

答案 2 :(得分:2)

任何规范都不保证您的方法的结果。

ECMAScript Edition 3是相关的,并没有指定Date.parse可以解析的任何格式。此外,该规范指出,当Date.parse提供的值不能由Date.prototype.toStringDate.prototype.toLocaleString生成时,结果取决于实现。

  

...当Date.parsetoString方法无法在该实现中生成任何字符串值时,toUTCString生成的值与实现有关。

在传递您自己的特定于语言环境的日期格式时,不要指望来自Date.parse的一致结果。

可以使用ISO-8601格式,您的程序可以解析该值。也可以看看: Date constructor returns NaN in IE, but works in Firefox and Chrome