【问题标题】:Check the date is greater than 0001-01-01 in Moment.js在 Moment.js 中检查日期是否大于 0001-01-01
【发布时间】:2016-07-25 01:36:16
【问题描述】:

我有一个使用格式化日期的函数,

export function FormatDate(date: string) {
if (date != null) {
    return moment.utc(date).format('DD MMM YYYY');
}
else
    return "";
}

但问题是空日期被接收为“0001-01-01”(DateTime Min 值)。怎么用moment js检查一下?

找不到直接的方法来做到这一点。以下代码有效,但很难看,

new moment("0001-01-01").format("DD MMM YYYY") == moment.utc(date).format("DD MMM YYYY")

我收到的“日期”是“/Date(-62135596800000)/”格式。

我试过了,moment.utc(date).isAfter("0001-01-01"),但效果不佳,返回 true。

检查序列化日期不是最小日期的最佳方法是什么?

【问题讨论】:

    标签: json momentjs date-comparison


    【解决方案1】:

    我认为您在比较日期时缺少时区部分。请查看下面的代码,如果这是必需的,请告诉我:

    var minDate = moment.utc("0001-01-01"); // minimum value as per UTC
    
    var receiveDate = moment("/Date(-62135596800000)/"); // replace with variable
    if(moment.utc(receiveDate).isAfter(minDate)){
         alert('yebo !');
    }
    

    【讨论】:

      【解决方案2】:

      如果你的日期是 c# 格式你可以这样做

          var dateObject = "/Date(-62135596800000)/";
          var ScriptDate = new Date(parseInt(dateObject.substr(6)));
          var minDate = moment.utc("0001-01-01");
          if(moment.utc(ScriptDate).isAfter(minDate)){ 
              console.log("Correct date"); 
          }else{ 
              console.log("Incorrect date"); 
          }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2021-04-23
        • 2018-12-06
        • 2015-12-31
        • 2011-10-07
        • 2013-07-23
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多