我想计算提供日期和当前日期之间的天数。 我使用以下javascript,但结果错误。
function getcabin(saildates) {
var d = new Date();
var month = d.getMonth()+1;
var day = d.getDate();
var output = d.getFullYear() + '-' + month + '-' + day;
alert(daydiff(parseDate(output), parseDate(saildates)));
}
function parseDate(str) {
var mdy = str.split('-')
return new Date(mdy[2], mdy[0]-1, mdy[1]);
}
function daydiff(first, second) {
return (second-first)/(1000*60*60*24)
}
任何人都可以指出错误或怎么做?
答案 0 :(得分:0)
新日期的语法是
新日期(年,月,日[,小时,分钟,秒,毫秒])
一方面,你在getcabin中添加1个月,而在parseDate中添加-1到年。
答案 1 :(得分:0)
在您的代码中,在新的Date函数中传递参数时出错。
语法是:
new Date(year,month,day[,hour,minute,second,millisecond]);
修改后的代码:
function getcabin(saildates)
{
var d = new Date();
var month = d.getMonth()+1;
var day = d.getDate();
var output = d.getFullYear() + '-' + month + '-' + day;
alert(daydiff(parseDate(output), parseDate(saildates)));
}
function parseDate(str)
{
var mdy = str.split('-')
return new Date(mdy[0], mdy[1]-1, mdy[2]);
}
function daydiff(first, second) {
return (second-first)/(1000*60*60*24)
}
getcabin("2012-10-8")
这将提示正确的日期值。
答案 2 :(得分:0)
您使用的格式为yyyy-mm-dd
:
var output = d.getFullYear() + '-' + month + '-' + day;
在这里,您将其解析为mm-dd-yyyy
:
return new Date(mdy[2], mdy[0]-1, mdy[1]);
格式化日期以使其适合解析器:
var output = month + '-' + day + '-' d.getFullYear();
如果要将其解析为yyyy-mm-dd
:
return new Date(mdy[0], mdy[1]-1, mdy[2]);
答案 3 :(得分:0)
你可以尝试这个功能
function getDayDiff(date) {
return parseInt(((new Date()) - date)/(1000*60*60*24))
}
所以,如果你试图找到一年中第一天的日差异
getDayDiff(new Date(2012,0,1))
您的结果为279
天