我正在比较两个日期,我的代码是这样的。
jQuery('.newAppointment a.ui-state-default').click(function() {
var date = jQuery(this).parent().attr('title');
var d = jQuery.datepicker.parseDate('dd/mm/yy',date.toString());
alert(d);
var today = new Date;
var t = jQuery.datepicker.parseDate('dd/mm/yy',today.toString() );
alert(t)
if(t > d){
url = "/users/" + user_id + "/events/new?type=Surgery"+"&day=" + escape(date);;
window.location = url;
}else{
alert("you cannot add appointment to past dates");
}
});
但是我在萤火虫中遇到错误。 未捕获的异常:位置0处缺少数字 谁能告诉我我做错了什么。
答案 0 :(得分:3)
来自fine manual:
parseDate(格式,值,设置)
[...]
可能会抛出许多例外情况:
- '如果格式表示未找到的数值
,则在位置nn处缺少数字
所以你的错误来自jQuery-UI。您从date.toString()
获得的格式取决于浏览器和区域设置,没有理由期望它始终为dd/mm/yy
,在您的情况下,它不是。{/ p>
您的date
已经是一个字符串并且采用已知格式(大概是dd/mm/yy
),所以您应该可以这样做:
var d = jQuery.datepicker.parseDate('dd/mm/yy', date);
获取日期。然后,您只需使用
获取today
即可
var today = new Date;
直接比较它们:
if(today > d)
如果你想丢弃小时,分钟和秒,那么:
var now = new Date;
// Or set milliseconds, seconds, minutes, and hours to zero.
var today = new Date(now.getFullYear(), now.getMonth(), now.getDate());
if(today > d)
答案 1 :(得分:0)
可能是parseDate()存在一些问题 您只需使用
即可比较日期if (today > date){...}