我可以使用以下方法确定所选日期是否已过去:
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');
}
但它没有达到那种警觉。上述陈述有什么问题?
答案 0 :(得分:8)
datepicker对象有一个getDate方法,您可以使用该方法返回日期值以将其与新日期()进行比较。你必须在新的日期进行一些进一步的按摩,但这应该可以得到你想要的东西。
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,您可以提前显示当前天数,