2

以下代码似乎在 Firefox 中有效,但在 Chrome 中无效:

var d = Date.parse("Sep 23, 2012 24:0:0");
alert (d);

它在 Firefox 中以毫秒为单位发出警报,但我在 Chrome 中得到一个 NaN。

当然,最后 3 个数字 (24:0:0) 可能不会算作“日期”,但我想有一个简单的解决方案来让代码跨浏览器工作。

4

2 回答 2

2

这应该适用于您列出的格式:

var parts = "Sep 23, 2012 21:1:2".match(/(.*) (\d+):(\d+):(\d+)/)
var d = new Date(parts[1])
d.setHours(parts[2])
d.setMinutes(parts[3])
var tstamp = d.setSeconds(parts[4])

不确定您最终是否想要一个 Date 对象或整数时间戳,但这应该让你们两个都受益。

于 2012-09-18T14:47:21.947 回答
1

Chrome似乎不支持时间...

试试Date.parse("Sep 23, 2012"); 应该可以

Date.parse 不应该根据规范解析时间。您需要第三方代码。请参阅: 从 Javascript 中的用户输入将时间解析为 Date 对象的最佳方法是什么?

于 2012-09-18T14:27:38.070 回答