【问题标题】:Moment date format always returning 01/01/1970 instead of actual date in angular application时刻日期格式总是返回 01/01/1970 而不是角度应用程序中的实际日期
【发布时间】:2019-08-12 12:10:17
【问题描述】:

请查找附件。实际日期是 2019 年 3 月 6 日,但返回的甲酸盐始终是 1970 年 1 月 1 日。我该如何解决这个问题?

apiData.map(res => {
const startDate = moment(res.Issue_Date).format('DD/MMM/YYYY');
const endDate = moment(res. Expire_Date).format('DD/MMM/YYYY');});

注意:我从这样的 API 调用中获取日期(Issue_Date: 20190603)

【问题讨论】:

  • 可以分享一下代码吗?
  • 代码已更新。我从这样的 API 获取日期格式(Issue_Date: 20190603)
  • 我类似于以下问题。 https://stackoverflow.com/a/35093952/10293350
  • @sagar 我尝试了上述解决方案但不起作用。
  • 请不要用答案更新问题。而是将其作为答案发布在单独的帖子中

标签: angular momentjs angular-moment


【解决方案1】:

您需要将 Issue_Date 转换为 String 类型。您传入的数字被视为 Unix 时间戳,因此这就是为什么您会得到 Jan 01 1970, 11:06:30 (从 1970 年 1 月 1 日 00:00:00 开始的 20190603 毫秒) )。

moment(res.Issue_Date.toString()); // or moment(`${res.Issue_Date}`);

【讨论】:

    【解决方案2】:

    试试下面的

    apiData.map(res => {
    const startDate = moment(res.Issue_Date,'YYYY-MM-DD').format('DD/MMM/YYYY');
    const endDate = moment(res. Expire_Date,'YYYY-MM-DD').format('DD/MMM/YYYY');});
    

    【讨论】:

      【解决方案3】:

      好的,问题是您的发布日期以数字格式传递,因此时刻以毫秒为单位计算。 试试这个 -

      let temp = res.Issue_Date.toString();
      const startDate = moment(temp ).format('DD/MMM/YYYY');
      console.log(startDate)
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2023-03-03
        • 2020-02-16
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多