两个日期之间的jQuery差异返回Nan

时间:2014-05-08 06:35:56

标签: jquery date

我有两个约会。一个来自datepicker,另一个是今天的约会。我希望使用jQuery来区分这两个日期,但它会提示Nan。这是我的代码

var mydob = jQuery('#datepicker').val();
  alert(mydob);// This prompts value from date picker accurately
                var newdate = '<?php echo date('m/d/Y') ?>';
        alert(newdate); // This prompts accurate today's date
        var diffx = Math.abs(newdate-mydob);
                var diffz = diffx/(24*60*60*1000);
                alert(diffx); This prompts Nan
                if(diffz < 5110)///if it is less than 14
                {
                    alert('under 14');
                    return false;
                }

2 个答案:

答案 0 :(得分:0)

问题是mydobnewdate都是字符串,而不是数值。

var mydob = jQuery('#datepicker').datepicker('getDate');
alert(mydob); // This prompts value from date picker accurately
var newdate = $.datepicker.parseDate( 'm/d/yy', '<?php echo date('m/d/Y') ?>');
alert(newdate); // This prompts accurate today's date
var diffx = Math.abs(newdate.getTime() - mydob.getTime());

演示:Fiddle

答案 1 :(得分:0)

您的新日期&#39;是从PHP echo设置的,它是一个格式化日期的字符串(格式为m / d / Y)。您需要将newdate设置为Date对象。我有点困惑,因为大多数人在将一种脚本语言内嵌到另一种脚本语言时,至于是否需要从服务器端获取日期是出于某种原因。如果你可以从客户端获得它,那么只需要&new;新的日期()&#39; var newdate = new Date()&#39;没问题,否则:

var newdate = new Date("<?= date('m/d/Y') ?>");

我不能100%确定你的#datepicker上的.val()会返回什么,因为我不知道它是什么产生的,但是这也可能是一个字符串,所以你&&lt; #39;我也需要从中初始化Date()对象。