jQuery字符串比较

jQuery string Comparison?

本文关键字:比较 字符串 jQuery      更新时间:2023-09-26

我正在比较两个日期,我的代码是这样的。

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缺少数字有人能告诉我哪里做错了吗。

来自精细手册:

parseDate(格式、值、设置)
[…]
可能会引发许多异常:

  • "位置nn处缺少数字",如果格式指示一个当时未找到的数值

所以您的错误来自jQuery UI。从date.toString()获得的格式取决于浏览器和语言环境,没有理由期望它总是dd/mm/yy,而在您的情况下,它不是。

您的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)

parseDate()可能有问题你只需使用就可以比较日期

if (today > date){...}