MomentJS 解析日期适用于两个日期,但显示 'Invalid Date' 第三个

MomentJS parsing date works with two dates but shows 'Invalid Date' for the third

我已经从 SO 中的帖子中尝试了至少 50 个解决方案,但似乎没有任何效果。我有三个日期:

Date 1: 2018-10-28T17:21:38Z
Date 2: 2020-10-28T22:29:30Z
Date 3: 2021-10-28T17:21:38Z

正在尝试将其解析为可读的内容。日期 1 和日期 2 完美运行,但日期 3 显示 Invalid Date.

Date 1: Sun Oct 28 2018 23:21:38 GMT+0600
Date 2: Thu Oct 29 2020 04:29:30 GMT+0600
Date 3: Invalid Date

还在终端中抛出弃用警告:

Deprecation warning: value provided is not in a recognized RFC2822 or ISO format. moment construction falls back to js Date(), which is not reliable across all browsers and versions. Non RFC2822/ISO date formats are discouraged. Please refer to http://momentjs.com/guides/#/warnings/js-date/ for more info.
Arguments:
[0] _isAMomentObject: true, _isUTC: false, _useUTC: false, _l: undefined, _i: 2021-10-28T17:21:38Z , _f: undefined, _strict: undefined, _locale: [object Object]

这是代码:

const date1 = moment('2018-10-28T17:21:38Z').toString();
console.log(date1);

const date2 = moment('2020-10-28T22:29:30Z').toString(); 
console.log(date2);

const date3 = moment('2021-10-28T17:21:38Z').toString();
console.log(date3);
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.29.1/moment.min.js"></script>

发生这种情况是因为日期 3 是未来的日期吗?任何帮助将不胜感激。谢谢

也为我工作。

<!DOCTYPE html>

<html lang="en">
  <head>
    <meta charset="utf-8" />

    <title>Test Moment</title>
    <meta name="description" content="Moment Test" />
    <meta name="author" content="Test" />
  </head>

  <body>
    Hi
    <script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.29.1/moment.min.js"></script>
    <script>
      const date1 = moment("2018-10-28T17:21:38Z").toString(); // Sun Oct 28 2018 20:51:38 GMT+0330
      console.log(date1);

      const date2 = moment("2020-10-28T22:29:30Z").toString(); // Thu Oct 29 2020 01:59:30 GMT+0330
      console.log(date2);

      const date3 = moment("2021-10-28T17:21:38Z").toString(); // Thu Oct 28 2021 20:51:38 GMT+0330
      console.log(date3);
    </script>
  </body>
</html>

更新您的 moment 模块,或者您需要将格式放入 moment 构造函数中...

const moment = require('moment');
let oldDate = "2021-10-28T17:21:38Z";
let newDate = moment(oldDate, "YYYY-MM-DD HH:mm:ss")
let strNewDate = moment(oldDate, "YYYY-MM-DD HH:mm:ss").toString()
console.log(newDate)
console.log(strNewDate )