【问题标题】:Return Invalid Date, when trying to convert Json time String to locale time尝试将 Json 时间字符串转换为语言环境时间时,返回无效日期
【发布时间】:2018-10-15 09:10:53
【问题描述】:

我正在尝试将 JSON 时间字符串转换为本地时间,如下所示

angular.forEach($scope.calendarData, function(item) {
  item.scheduleArray.startTime = new Date(item.scheduleArray.startTime);
  item.scheduleArray.endTime = new Date(item.scheduleArray.endTime);
});

例如

startTime = "1970-01-01T08:52:00.000Z"

但是当我执行代码时,它显示 Invalid date。我该如何解决这个问题

【问题讨论】:

  • 你能控制你的 item.scheduleArray
  • 因为 new Date("1970-01-01T08:52:00.000Z") 是有效日期。
  • 如果 scheduleArray 实际上是数组,那么 item.scheduleArray.startTime 将是未定义的。
  • scheduleArray = {alert: "emailNotification" endTime: "1970-01-01T08:52:00.000Z" expand: true startTime: "1970-01-01T11:12:00.000Z" title: "新时间表"}' {...
  • 为什么如果 scheduleArray 是一个数组,那么 startTime 变成 undefine 请告诉我

标签: javascript angularjs datetime


【解决方案1】:

let scheduleArray = {alert: "emailNotification", endTime: "1970-01-01T08:52:00.000Z", expanded: true, startTime: "1970-01-01T11:12:00.000Z", title: "New Schedule"};

let calendarData = [];
calendarData.push({'scheduleArray':scheduleArray});

angular.forEach(calendarData, function(item) {
  item.scheduleArray.startTime = new Date(item.scheduleArray.startTime);
  item.scheduleArray.endTime = new Date(item.scheduleArray.endTime);
  console.log(item.scheduleArray.startTime);
});

console.log(calendarData);
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.13/angular.min.js"></script>

【讨论】:

    猜你喜欢
    • 2012-06-04
    • 2014-03-30
    • 1970-01-01
    • 1970-01-01
    • 2013-06-28
    • 1970-01-01
    • 2015-09-17
    • 1970-01-01
    • 2012-06-03
    相关资源
    最近更新 更多