我正在比较两个日期,我的代码如下所示。
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");
}
});
但是我在 Firebug 中遇到错误。 未捕获的异常:位置 0 处缺少数字 谁能告诉我哪里做错了。
最佳答案
来自fine manual :
parseDate(format, value, settings)
[...]
A number of exceptions may be thrown:
- 'Missing number at position nn' if format indicated a numeric value that is not then found
所以你的错误来自 jQuery-UI。您从 date.toString()
获得的格式取决于浏览器和区域设置,没有理由期望它总是 dd/mm/yy
而在您的情况下,它不是。
您的日期
已经是一个字符串并且采用已知格式(大概是dd/mm/yy
),因此您应该能够执行以下操作:
var d = jQuery.datepicker.parseDate('dd/mm/yy', date);
获取日期。然后您只需使用以下命令即可获得今天
:
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)
关于javascript - jQuery 字符串比较?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9373323/