在JavaScript中解析日期字符串的意外结果

时间:2013-10-30 13:45:43

标签: javascript date datetime

我正在开发一个JavaScript应用程序。我有两个不同的字符串日期31/10/20131/11/2013,我使用new Date(string).getTime();

创建这两个日期的实例

但它显示了这个(同一天)和结果:

console.log(date_s + " after new date " + date );

31/10/2013 after new date Fri Nov 1 00:00:00 UTC 2013

1/11/2013 after new date Fri Nov 1 00:00:00 UTC 2013

3 个答案:

答案 0 :(得分:1)

new Date(string)

中没有有效的字符串

初始化日期的一些示例

var my_date=new Date(2013,10,31)

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

上的所有文档

答案 1 :(得分:0)

31/10/2013不是有效的日期字符串,除非您可能正在进行某些本地化。对于en-US的默认本地化设置,它应为10/31/2013。你的字符串意味着什么是“2013年第31个月”,这促使new Date('31/10/2013')在2015年有一段时间,因为那是由于“31个月”而解决日期的问题。

答案 2 :(得分:0)

如果您想要一个简单的解决方案,请尝试moment.js - 一个功能强大的javascript日期解析器/格式化程序/验证器/操纵器。

现在,您可以使用类似[doc]的语法解析日期:

//this will gives you a correct date object
moment('31/10/2013', 'DD/MM/YYYY').toDate(); 

否则,您可以随时欢迎拆分和重建日期对象。