如何获取当前日期和提供的日期jquery之间的天数

时间:2012-10-06 08:34:54

标签: javascript

我想计算提供日期和当前日期之间的天数。 我使用以下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)
}

任何人都可以指出错误或怎么做?

4 个答案:

答案 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