【问题标题】:Formatting date object in an Array with moment is giving an unexpected result用时刻格式化数组中的日期对象会产生意想不到的结果
【发布时间】:2020-05-27 01:03:34
【问题描述】:

我从 MongoDB 数据库和 Nodejs 服务器基础 api 获取笔记数据,我正在尝试使用 moment 格式化日期,下面是笔记数组的样子,下面是笔记数组是我尝试过的在其他方面实现这一目标

notes = [{
date: "2020-02-27T19:35:52.000Z"
text: "alguma coisa"
_id: "1"

date: "2020-02-27T20:20:27.000Z"
text: "o que"
_id: "2"


date: "2020-02-27T20:21:00.000Z"
text: "o"
_id: "3"
}]


getFunction(){
this.api.get("/notes/", _id).subscribe(
      data => {
        let response = data as any;
        let ret = JSON.parse(response._body);

        this.notesData = ret;
        let retNow = this.notesData.map(o => { 
          Object.keys(o).forEach(k => {
            let d = moment(new Date(o[k]))
            if (d.isValid()) o[k] = moment().format("dddd DD-MMM-YYYY HH:mm");
          })
        })
        console.log("Note" retNow)
      }, error => {
        console.log("error", error);
      }
    );}

我的 HTML

{{note.date}}

日期格式正确,但问题是,所有日期都相同,都是当前日期(今天的日期) 请问我在这里做错了什么,

【问题讨论】:

  • 我认为应该是 d.format() 而不是 moment().format() 因为那只会创建一个具有当前日期的新时刻对象
  • 非常感谢,这个理想的作品,但是日期的格式仍然不正确,而不是 2020 年 2 月 11 日,而是 2020 年 11 月 2 日,你知道吗?我可以解决这个问题的方法吗?谢谢
  • 我想不出你的日期对象被解析不同的原因,从上面的例子看来它是 ISO8601 应该没有任何问题,也许你可以explicitly set the date format when parsing

标签: javascript typescript ionic-framework ionic3 momentjs


【解决方案1】:

你可以试试这个

moment(YOUR_DATE).format(DATE_FORMAT);
moment('2020-02-27T20:21:00.000Z').format("DD-MMM-YYYY HH:mm");

结果:2020 年 2 月 28 日 01:51

【讨论】:

  • 太棒了,谢谢,这解决了我的问题,也帮助我以我想要的方式操作日期,看看你的例子帮助我做到了这一点,如果 (d.isValid()) o[k ] = moment(d).format("dddd DD-MMM-YYYY HH:mm");
猜你喜欢
  • 2015-03-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-10-04
  • 2019-04-05
  • 1970-01-01
相关资源
最近更新 更多