1

在我正在开发的 angularJS 应用程序中,我们使用 SQL 服务器来提供数据。那里没什么奇怪的。我的任务是处理日期,因此传递到我们的应用程序中的具有 SQL 最小日期值的对象是未定义的,而那些确实有日期的对象是 javascript Date 对象。

我知道在升级过程中,有时为 min date 定义的字符串可能会改变。现在,它是 0001-01-01T00:00:00Z。我不能只进行字符串比较,因为它可能会改变。

我的问题是,我如何在 javascript 中确定这个最小日期?new Date(varThatIsMinDate) 是有效日期。MomentJS 也认为它是有效的,它在技术上是一个有效的日期。我不太担心验证,更担心“是最低日期”

您如何从 zulu 模式 0001-01-01T00:00:00Z 或类似的 javascript 中确定 min date === true ?

到目前为止我的代码,因为我知道你会要求它:

if (response.config.responseType === 'json')        {
      for (var property in response.data) {
        if (response.data.hasOwnProperty(property)) {

          if (property.toUpperCase().indexOf('DATE') > -1 || property.toUpperCase().indexOf('TIME') > -1) {
            console.log(property.toUpperCase());
            // Attempt to use JS built in date and validate
            var tmpDate = new Date(response.data[property]);
            if ($moment(tmpDate).isValid()) {
              // Make it a valid date object if it has a valid date
              response.data[property] = tmpDate;
            } else {
              // Make it undefined
              response.data[property] = undefined;
            }
          }
        }
      }
    }

事情是,它总是有效的,所以这段代码不起作用。

编辑:我可以作弊并使用 tmpDate.getUTCFullYear() === 1 但我想知道如何以正确的方式做到这一点。

4

0 回答 0