日期区别在Firefox和IE,但在Chrome
返回NaN的我使用的:日期区别在Firefox和IE,但在Chrome
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”
它没有工作。我不明白为什么它可以在Firefox或IE中运行,为什么不在Chrome浏览器 –
请输入ID为'StartDate'和'EndDate'的输入值的格式? –
*必须是数字*不正确。 – Jai
不要使用日期构造解析字符串,始终手动解析它们(库可以帮助,但通常没有必要)。例如,要解析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);
}
您确定这不适用于Chrome吗? $('#StartDate')。val()和$('#EndDate')。val()返回什么? –
第10,000次,不要使用Date构造函数(或Date.parse,他们做同样的事情)来解析字符串,它主要依赖于实现。编写一个2行函数来手动解析它(或者使用一个库,但是你将花费更多的时间来学习库,而不是编写函数)。 – RobG