1

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

4 回答 4

0

新日期的语法是

新日期(年,月,日[,小时,分钟,秒,毫秒])

另一方面,您在 getcabin 中将月份添加 1,但在 parseDate 中将 -1 添加到年份。

于 2012-10-06T08:52:58.213 回答
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")
​

这将提醒正确的日期值。

于 2012-10-06T09:01:22.923 回答
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]);
于 2012-10-06T09:04:16.763 回答
0

你可以试试这个功能

function getDayDiff(date) {
     return parseInt(((new Date()) - date)/(1000*60*60*24))
} 

因此,如果您尝试找出与一年中的第一天的日差

getDayDiff(new Date(2012,0,1))

你得到的结果是279

于 2012-10-06T09:50:28.077 回答