【问题标题】:How to compare date in javascript in this format? [duplicate]如何以这种格式比较javascript中的日期? [复制]
【发布时间】:2017-07-12 15:23:11
【问题描述】:

如何将今天的日期时间与 javascript 中的2016-06-01T00:00:00Z 格式进行比较?

我从后端得到2016-06-01T00:00:00Z 日期格式。我想用今天的日期检查这个,但不确定如何以这种格式检查。

我对 javascript 非常陌生。

【问题讨论】:

  • 使用var d = new Date("2016-06-01T00:00:00Z") ?
  • 我不能硬编码值。
  • 这是一个字符串。您从后端获取一个字符串。您只需替换我示例中的字符串即可。
  • 用包含您从服务器端获取的日期的任何变量替换括号内的@Seblor

标签: javascript date


【解决方案1】:

如果你稍微搜索一下,你就能找到解决方案。

你必须将你的字符串解析成 Js Date 并与今天的日期进行比较。

var stringDate ="2016-06-01T00:00:00Z";

var jsDate = new Date(stringDate).getTime(); //getTime() => time in ms
var today = new Date().getTime();

console.log("date is oldest than today :", jsDate < today)

【讨论】:

    【解决方案2】:

    使用我对问题的评论,您可以在一行中快速完成。 @Alexis 的回答有点矫枉过正(无意冒犯)

    var result = new Date("2016-06-01T00:00:00Z") > new Date ? "After now" : "Before now";
    

    【讨论】:

    • 这不起作用。您不能像这样比较 Date 对象,并且存在拼写错误;)
    • 不。它工作正常。做数学比较将使用时间戳,所以整数。
    • 真的吗?试试看,它告诉我 2016-06-01 已经过了。它可以帮助你stackoverflow.com/questions/492994/…
    • 哦,我的错,我把结果弄混了。正好相反,要编辑
    • 你总是有第二个结果,因为你不能像这样比较日期对象!你的解决方案是错误的。
    【解决方案3】:

    使用 Date ObjectDate#getTime 返回自 unix 纪元以来的毫秒数。很简单。

    let 
      dateStr        = "2016-06-01T00:00:00Z"
      d1             = new Date(dateStr),
      d2             = new Date(),
      d1IsBeforeD2   = d2.getTime() > d1.getTime()
    ;
    
    console.log(d1IsBeforeD2);

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-03-09
      • 1970-01-01
      相关资源
      最近更新 更多