Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/google-chrome/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 日期差异在Firefox和IE中有效,但在Chrome中返回NaN_Javascript_Google Chrome_Date_Firefox - Fatal编程技术网

Javascript 日期差异在Firefox和IE中有效,但在Chrome中返回NaN

Javascript 日期差异在Firefox和IE中有效,但在Chrome中返回NaN,javascript,google-chrome,date,firefox,Javascript,Google Chrome,Date,Firefox,我用的是: function DateDiff(date1, date2) { var datediff = date2.getTime()- date1.getTime(); return (datediff); } $(document).on('dp.change', '#EndDate', function (e) { var StartDate= new Date($('#StartDate').val

我用的是:

   function DateDiff(date1, date2) {

        var datediff = date2.getTime()- date1.getTime(); 
        return (datediff); 
    }
    $(document).on('dp.change', '#EndDate', function (e) {
            var StartDate= new Date($('#StartDate').val());
            var EndDate= new Date($('#EndDate').val());

            alert(DateDiff(EndDate, StartDate));

             ...
它不工作,在Chrome中返回NaN(实际上我正在尝试更改DateTimePicker上的天数,它工作到第12天,但在第12天之后返回NaN)


但是它可以在Firefox或IE中使用。

使用
momentjs
如果您的输入是'DD/MM/YYYY'

不要使用日期构造函数来解析字符串,请始终手动解析字符串(库可以帮助,但通常不需要)。例如,要解析d/m/y格式的字符串并验证日期,请考虑:

function parseDMY(s) {
  var b = s.split(/\D/);
  var d = new Date(b[2], --b[1], b[0]);
  return d && d.getMonth() == b[1]? d : new Date(NaN);
}

它不起作用。我不明白为什么它可以在Firefox或IE中使用,为什么不能在ChromeShow中使用,请使用id
StartDate
EndDate
?输入值的格式必须是数字不正确。使用
momentjs
来做你需要的事情,因为你的格式不是日期构造的标准。好的,我知道问题出在哪里了。我又看了一遍,因为格式的原因,它显示的是五月而不是三月。你确定这在chrome中不起作用吗?$('#StartDate').val()和$('#EndDate').val()返回什么?第10000次,不要使用日期构造函数(或Date.parse,它们做同样的事情)来解析字符串,这在很大程度上取决于实现。编写一个两行函数来手动解析它(或者使用库,但是学习库的时间比编写函数的时间要多)。