函数产生错误的差异

Function produces the wrong 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)
}

日期接收以下参数:

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");