【问题标题】:MomentJS parsing date works with two dates but shows 'Invalid Date' for the thirdMomentJS 解析日期适用于两个日期,但第三个日期显示“无效日期”
【发布时间】:2020-12-03 18:48:56
【问题描述】:

我已经从 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 是未来日期吗?任何帮助将不胜感激。谢谢

【问题讨论】:

  • 很奇怪。我刚刚在 JSFiddle 中尝试过,它对我有用。
  • 在 JSFiddle 中也适用于我,Moment 2.2.1 jsfiddle.net/0w1synqe
  • 在 JSFiddle 中也无法重现它,时刻 2.29.1,你使用的是什么版本的时刻?
  • 伙计们,我使用的是 2.29.1,但它不起作用。它对你们有用,但对我没有用? :(
  • 你的 sn-p 工作正常

标签: javascript node.js express date momentjs


【解决方案1】:

也为我工作。

<!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>

【讨论】:

    【解决方案2】:

    更新你的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 )
    

    【讨论】:

      猜你喜欢
      • 2017-04-04
      • 2021-07-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-02-15
      • 2023-03-29
      • 2019-04-29
      • 2020-05-01
      相关资源
      最近更新 更多