javascript:新日期(" 31.12.2015")返回无效日期

时间:2015-11-27 04:04:41

标签: javascript

在javascript编程中,我使用新的Date(aDate)

aDate可以采用dd/MM/yyyyMM/dd/yyyyyyyy-MM-dd等任何格式。

但是当使用格式为dd.MM.yyyy时,除了2015年12月31日之外,所有日期都有效。 new Date("31.12.2015")返回错误Invalid Date

所有其他格式都运行正常。为什么31.12.2015显示错误?

2 个答案:

答案 0 :(得分:0)

您可以使用以下代码解析这些非标准日期格式:

var da = '31.12.2015'.split('.').map(function(d) {
  return parseInt(d);
});
var d = new Date(da[2], da[1] - 1, da[0]);

或者像moment.js这样的时间格式化文件库,如果你做了很多关于日期和时间的事情,并且需要考虑边缘情况。

var d = moment('31.12.2015', 'DD.MM.YYYY');

答案 1 :(得分:0)

这不仅仅是31,每天都大于12,bcz期待MM.dd.yyyy,在这个类似的帖子中有一些解决方案:

How to create a new Date() in Javascript from a non-standard date format