【问题标题】:Changing Invalid Date to return a string in javascript更改无效日期以在 javascript 中返回字符串
【发布时间】:2020-11-11 14:15:43
【问题描述】:

我有一个日期无效的对象。我在表格中显示了这个日期,但我想说如果日期无效,那么它应该说“未来日期”。我的代码是这样的:

for (let i = 0; i < res.data.length; i += 1) {
  if (!(res.data[i].inspectionDate instanceof Date &&
      !isNaN(res.data[i].inspectionDate))) {
    res.data[i].inspectionDate = 'Futre Date';
  }
}

但如果日期无效,它仍会显示“无效日期”。如果日期无效,如何显示“未来日期”?

【问题讨论】:

标签: javascript arrays date instanceof


【解决方案1】:

使用这个

for (let i = 0; i < res.data.length; i++) {
    if (JSON.stringify(new Date(res.data[i].inspectionDate)) === 'null') {
        res.data[i].inspectionDate = "Futre Date";
    }
}

【讨论】:

    【解决方案2】:

    我不明白你为什么使用!isNaN(res.data[i].inspectionDate)。我认为!(res.data[i].inspectionDate instanceof Date) 这足以检查日期是否无效。 请检查以下代码。

    var res = {
      data: [{
          inspectionDate: 'INVALID DATE'
        },
        {
          inspectionDate: new Date()
        }
      ]
    };
    
    for (let i = 0; i < res.data.length; i++) {
      if (!(res.data[i].inspectionDate instanceof Date)) {
        res.data[i].inspectionDate = 'Future Date';
      }
    }
    
    console.log(res);

    你也可以这样用。

    var res = {
      data: [{
          inspectionDate: 'INVALID DATE'
        },
        {
          inspectionDate: new Date()
        }
      ]
    };
    
    res.data.forEach(data => {
      if (!(data.inspectionDate instanceof Date)) {
        data.inspectionDate = 'Future Date';
      }
    });
    
    console.log(res);

    【讨论】:

      【解决方案3】:

      您只需要检查Date是否可以强制转换为有效数字:

      if (isNaN(res.data[i].inspectionDate)) {
             res.data[i].inspectionDate = "Futre Date";
      }
      

      【讨论】:

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