【问题标题】:See if date selected is future from today - JavaScript查看选择的日期是否是从今天开始的未来 - JavaScript
【发布时间】:2014-01-24 19:59:27
【问题描述】:

我必须将他们想要输入的日期与今天的当前日期进行比较,如果他们输入的日期是将来的日期,则提醒他们更改日期,否则插入数据。

基本上我在比较日期时遇到问题。这是我的代码:

var today = year + '-' + month + '-' + day + ' 00:00:00';

var d1 = new Date(postdate); // postdate = 2014/02/01 ie: 1 Feb 2014
var d2 = new Date(today); // todays date
if(d1>d2){
    alert('You cannot post in the future!');
}

但这似乎不起作用。我哪里错了?

【问题讨论】:

标签: javascript date compare


【解决方案1】:

将日期转换为可比较的数字,例如毫秒。

if(d1.valueOf()>d2.valueOf()){
    alert('You cannot post in the future!');
}

【讨论】:

    【解决方案2】:

    您无需创建新变量today。 如果到今天你想得到今天的日期,你可以简单地做 var today = new Date();

    var d1 = new Date(postdate); // postdate = 2014/02/01 ie: 1 Feb 2014
    //----------
    var d2 = new Date(year,month,day); // todays date
    //----------
    
    if(d1>d2){
        alert('You cannot post in the future!');
    }
    

    记住 month 是基于 0 的索引。所以,12 月应该是 11 号。

    【讨论】:

      【解决方案3】:

      比较相同格式的日期,如果今天是 2014-01-24 00:00:00 那么 postdate 也应该是 2014-02-01 00:00:00

      然后用+前缀比较毫秒:

      if(+d1 > +d2){
          alert('You cannot post in the future!');
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2018-05-16
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-10-21
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多