我需要查找2个选定日期之间的天数。我尝试了以下代码,但它返回了某些日期的错误结果。
function getDateObject(str) {
var arr = str.split("-");
return new Date(arr[0], arr[1], arr[2]);
}
$('#from_date,#to_date').bind("change paste keyup", function() {
var date1 = getDateObject($('#from_date').val());
var date2 = getDateObject($('#to_date').val());
var days = (date2 - date1) / 86400000;
alert(days); //it returns -1 for from:2016-01-31 - to:2016-02-01.
//other dates like from:2016-01-13 - to:2016-01-14 returns 1 correctly
}
请帮我解决这个问题。
答案 0 :(得分:0)
您需要正确地解析日期:
new Date("2016", "01", "31");
将给出
Wed Mar 02 2016 00:00:00 GMT+0530 (IST)
这样可以正常使用
// str should be in yy-mm-dd
function getDateObject(str) {
return new Date(str);
}
答案 1 :(得分:0)
最后我找到了解决方案。
function getDateObject(str) {
var arr = str.split("-");
return new Date(arr[0], arr[1]-1, arr[2]);//just added -1 in arr[1] that is month.
}
$('#from_date,#to_date').bind("change paste keyup", function() {
var date1 = getDateObject($('#from_date').val());
var date2 = getDateObject($('#to_date').val());
var days = (date2 - date1) / 86400000;
alert(days);
}
这给了我需要的输出。
谢谢大家试图帮助我。