javascript - jQuery 字符串比较?

标签 javascript jquery jquery-ui

我正在比较两个日期,我的代码如下所示。

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/

相关文章:

javascript - jQuery - 将高度动画化为自动

c# - '/' 应用程序中的服务器错误-->服务器标记格式不正确

javascript - Flot:自定义条形图

javascript - 在更改时显示日期选择器

javascript - 如何将键盘按键指定为菜单项的快捷方式

javascript - 使用 jQuery 滚动到包含大量文本的 div 的底部

javascript - 类型框架关系

javascript - 如何用jQuery替换一些带有 "x"的字符?

javascript - JQuery 在另一个模态对话框中打开一个模态对话框

jquery ui slider 显示值