功能产生错误的差异

时间:2016-05-16 17:38:42

标签: javascript date difference

我需要你的帮助,

由于某些奇怪的原因,当从当前日期减去Date2时,下面的函数返回错误的日期值差异为-1。

使用的日期格式为:dd / MM / yyyy h:mm tt

正确使用示例:

Date2 (15/05/2016 12:00 AM) - Date1 (16/05/2016 12:00 AM) = -1
Date2 (16/05/2016 12:00 AM) - Date1 (16/05/2016 12:00 AM) = 0
Date2 (17/05/2016 12:00 AM) - Date1 (16/05/2016 12:00 AM) = +1


function test() {

    var date1 = new Date()

    var date2 = new Date("16/05/2016 1:37 PM")

    var diff = (date2.getTime() - date1.getTime()) / (1000*60*60*24)

    diff = Math.round(diff)

    alert(diff)
}

1 个答案:

答案 0 :(得分:0)

日期收到以下参数:

Date(year, month, day, hours, minutes, seconds, milliseconds);

所以只需替换这一行:

var date2 = new Date("16/05/2016 1:37 PM")

这一行:

var date2 = new Date(2016, 4, 16, 13, 37);

你也可以像你一样给它一个字符串日期,但是你需要把年份放在第一年,然后是月份,然后是当天:

var date2 = new Date("2016/05/16 1:37 PM");