Javascript毫秒表示法在Firefox中无效

时间:2012-12-21 09:46:57

标签: javascript

任何人都可以帮我吗?

var current_date=new Date('2012/12/21 22:59:59.997');
var result=current_date.getTime();

我没有在Firefox中获得结果,但它确实以chrome显示,在FF中显示无效日期。

3 个答案:

答案 0 :(得分:3)

您应该可以执行以下操作(使用date.setMilliseconds):

var dateString = '2012/12/21 22:59:59.997';
var dateStringSplit = dateString.split('.');
var myDate = new Date(dateStringSplit[0]);
myDate.setMilliseconds(dateStringSplit[1]);
console.log(myDate);

答案 1 :(得分:2)

Firefox和其他一些浏览器(即Safari或Opera)不喜欢毫秒。

// Split off the part after the dot
var current_date = new Date('2012/12/21 22:59:59.997'.split('.')[0]);

// Works everywhere!
var result = current_date.getTime();

如果您真的想要使用毫秒,则必须将日期拆分为多个部分,并使用new Date()。从MDN文档中,可以选择以下选项:

new Date(year, month, day [, hour, minute, second, millisecond])

或者,正如h2ooooooo所述,您可以使用分割日期的第二部分并使用setMilliseconds

总的来说,你有很多解决方案。选择最让你烦恼的那个。

答案 2 :(得分:0)

您使用的格式不是Date.parse

的标准格式

您可能希望拆分字符串并单独设置部件。另外,请正确管理时区,因为日期字符串所在的时区不明显。