【发布时间】:2017-09-01 09:33:10
【问题描述】:
我注意到 javascript 在管理这个特定日期时的一种奇怪行为
"31-12-2017 23:59:59"
我有一个 API,我调用它并将一些日期作为字符串返回给我,我必须使用 js 将它们转换为日期。
我的代码是这样的
while (i<array.length){
array[i].start_date = new Date (array[i].start_date);
array[i].start_date.setHours(array[i].start_date.getHours()+1);
array[i].start_date = $filter('date')(array[i].start_date, "dd-MM-yyyy HH:mm:ss");
array[i].end_date = new Date (array[i].end_date);
array[i].end_date.setHours(array[i].end_date.getHours()+1);
array[i].end_date = $filter('date')(array[i].end_date, "dd-MM-yyyy HH:mm:ss");
$scope.insSupplies.push(array[i]);
i++;
};
数组是我所质疑的 API。
这里的问题是当我的代码尝试这个时
array[i].end_date = new Date (array[i].end_date);
在这个日期
"31-12-2017 23:59:59"
array[i].end_date 变为 Invalid Date
这是怎么发生的?
编辑:
var date = "31-12-2017 23:59:59"
var dateSplitted = date.split("-");
var dateInverted = dateSplitted[1] +"-" +dateSplitted[0] +"-"+dateSplitted[2];
dateSplitted = dateInverted.split(" ");
alert(dateSplitted[0]+"T"+dateSplitted[1]+"Z");
alert(new Date(dateSplitted[0]+"T"+dateSplitted[1]+"Z"));
我实现了这个粗略的方法来解析我的日期,但我不明白这是怎么回事 有什么帮助吗?
【问题讨论】:
-
不是这个特定的日期。这种格式的任何日期都是无效的。它还说
25-08-2015 18:30:10是无效日期。
标签: javascript angularjs date