JQuery Datepicker:如果选择的日期是今天的日期

时间:2012-03-30 15:42:50

标签: jquery jquery-ui date datepicker jquery-ui-datepicker

我可以使用以下方法确定所选日期是否已过去:

var due_date = $('#due_date').val();
if(new Date(due_date).getTime() <  new Date().getTime())
{
  //do stuff
}

^这很好用

我使用以下内容确定所选日期是否为今天的日期:

var due_date = $('#due_date').val();
var today = new Date().getTime();
if(new Date(due_date).getTime() == today)
{
    alert('ok');
}

但它没有达到那种警觉。上述陈述有什么问题?

5 个答案:

答案 0 :(得分:8)

datepicker对象有一个getDate方法,您可以使用该方法返回日期值以将其与新日期()进行比较。你必须在新的日期进行一些进一步的按摩,但这应该可以得到你想要的东西。

JsFiddle Example

HTML:

Date: <input type="text" id="thedate"/>
<div id="checkDate">Check Date</div>

JS:

$('#thedate').datepicker();

$('#checkDate').bind('click', function() {
  var selectedDate = $('#thedate').datepicker('getDate');
  var today = new Date();
  today.setHours(0);
  today.setMinutes(0);
  today.setSeconds(0);
  if (Date.parse(today) == Date.parse(selectedDate)) {
    alert('today!');
  } else {
    alert('not today');
  }
});

答案 1 :(得分:2)

字符串“30/03/2012”用于创建日期时会生成表示2012年3月30日午夜的Date对象。当您调用new Date()时,它会创建一个表示当前时间的Date对象(包括秒和毫秒)。

您需要将Date对象的小时,分​​钟,秒和毫秒属性设置为0,以便它们使用setHours()setMinutes()等函数表示完全相同的时间。

有关Date对象的更多信息,请查看MDN entry

答案 2 :(得分:2)

你需要确保你比较苹果和苹果。这是一个简单的检查方法:

jQuery的:

$('#dp').datepicker({
    onSelect: function(dateText) {
        var today = new Date(new Date().getFullYear(), new Date().getMonth(), new Date().getDate()).getTime();
        var selected = new Date(dateText).getTime();
        if (today > selected) alert('prior to today');
        else if (today < selected) alert('after today');
        else alert('today');
    }
});​

<强> jsFiddle example

答案 3 :(得分:0)

getTime()返回毫秒,而不是比较日月和年,我相信正常的日期比较(可能是错误的)。请参阅:http://www.w3schools.com/js/js_obj_date.asp

答案 4 :(得分:-1)

你也可以这样做:

import { html_file, css_file,javasript_file } from 'path'

使用 minDate: 0,您可以提前显示当前天数,