函数产生错误的差异

Function produces the wrong difference

本文关键字:错误 函数      更新时间:2023-09-26

我需要你的帮助,

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

使用的日期格式为:日/月/年 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 接收以下参数:

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