【问题标题】:Javascript Date Object Comparison with hidden valueJavascript日期对象与隐藏值的比较
【发布时间】:2012-01-18 16:18:31
【问题描述】:

我一直在痴迷地阅读 SO 如何在 Javascript 中执行日期对象比较。得到了一些非常好的想法和建议,但似乎无法获得任何快乐。

这就是问题所在。我正在使用 jquery datepicker 来设置隐藏值。如果隐藏值发生变化,我想将此日期与今天的日期进行比较,如果它们匹配,我想向控制台发送警报。

这是我的脚本。 chrome控制台没有报错;它似乎不想进行我所追求的日期比较。

        var date2 = new Date();
        $("select[name=sanctionDateStart_hidden]").change(function () {
            if ($("select[name=sanctionDateStart_hidden]").getTime() == date2.getTime())
            alert("yayayayaya");
        });

感谢任何人愿意分享的任何见解。

编辑: 这是最终解决我的问题的方法,只是发布它以防其他人可以使用它。感谢下面的帖子帮助我朝着正确的方向前进。

var date2 = new Date();
$("#sanctionDateStart").datepicker({
altField: "#sanctionDateStart_hidden", 
altFormat: "yy-mm-dd", 
minDate: new Date()
}).datepicker("setDate", "{$data.sanctionDateStart}").change(function () {
$('#sanctionDateEnd').datepicker('option', 'minDate', $(this).datepicker('getDate'));
if ($("#sanctionDateStart").datepicker("getDate").getFullYear() == date2.getFullYear()
&& $("#sanctionDateStart").datepicker("getDate").getMonth() == date2.getMonth()
&& $("#sanctionDateStart").datepicker("getDate").getDate() == date2.getDate())
{
alert ('Todays Date');  
}
});

【问题讨论】:

    标签: javascript object date comparison


    【解决方案1】:

    Javascript Date 实际上是一个包含当前日期以及小时、分钟、秒和毫秒的时间。所以它很少会匹配日期选择器选择的日期

    var date2 = new Date();
    var onlyDateWithoutTime = new Date( date2.getFullYear()
                 , date2.getMonth() , getDate() , 0,0,0,0);
    

    在比较中使用onlyDateWithoutTime

    或者做

    var date2 = new Date();
      var pickedDate = $("select[name=sanctionDateStart_hidden]").getTime();
    
      if ( pickedDate.getFullYear() == date2.getFullYear() 
           &&  pickedDate.getMonth() == date2.getMonth()
           &&  pickedDate.getDate() == date2.getDate() )
      {
      }
    

    【讨论】:

      猜你喜欢
      • 2011-11-28
      • 1970-01-01
      • 1970-01-01
      • 2023-04-09
      • 1970-01-01
      • 2014-02-12
      • 1970-01-01
      相关资源
      最近更新 更多