如何从包含AM / PM的日期字符串创建日期对象?

时间:2011-12-24 12:21:30

标签: javascript date

有没有办法用AM / PM值定义javascript日期对象?

像这样的东西

var startDate = new Date("1900-1-1 8:20:00 PM");

4 个答案:

答案 0 :(得分:11)

这有效:

new Date( '1 Jan 1900 8:20:00 PM' )

并且相当于

new Date( '1 Jan 1900 20:20:00' )

现场演示: http://jsfiddle.net/cVE2E/

答案 1 :(得分:0)

你可以使用Date.parse

var startDate = new Date(Date.parse("1900-1-1 8:20:00 PM"));

答案 2 :(得分:0)

这取决于浏览器和/或语言环境。但我找到了一个可以提供帮助的脚本:http://blog.stevenlevithan.com/archives/date-time-format

答案 3 :(得分:0)

无法保证Date.parse()方法以及新的Date()构造函数可以解析任何特定的日期格式。根据ECMAScript标准,只需要处理特定的ISO 8601格式和一些依赖于实现的格式。

因此,至少为了便携性,您需要使用其他工具,例如Globalize.js库;使用它,你会使用

Globalize.parseDate('1900-1-1 8:20:00 PM','yyyy-M-d h:mm:ss tt')

当第一个参数与第二个参数指定的格式匹配时返回Date对象。

如果您需要在输入中处理替代日期格式,则可能需要编写尝试使用特定格式读取数据的代码,直到获得非空结果。