javascript - Javascript 和 datediff mysql 中的日期之间的日期差异不相等

标签 javascript mysql

我有一个 javascript 函数返回两个日期之间的天数,但它返回的天数似乎比 mysql dateDiff 函数返回的天数少

 function dateDiffInDays() {
    var date1 = new Date("05/30/2012");
    var date2 = new Date("11/29/2013");
    var diffDays = parseInt((date2 - date1) / (1000 * 60 * 60 * 24)); 

    alert(diffDays );
}

如果我在 mysql 函数中使用这两个日期,我得到 548,而对于 javascript,我得到 547,mysql 和 excel 用它们的函数做了什么,这与 javascript 不同

最佳答案

由于我们怀疑时区问题,您可以尝试这样的操作:

function dateDiffInDays() {
    var date1 = new Date("05/30/2012");
    var date2 = new Date("11/29/2013");
    var utc1 = Date.UTC(date1.getFullYear(), date1.getMonth(), date1.getDate());
    var utc2 = Date.UTC(date2.getFullYear(), date2.getMonth(), date2.getDate());
    var diffDays = parseInt((utc2 - utc1) / (1000 * 60 * 60 * 24)); 

    alert(diffDays);
}

不过我不确定。从理论上讲,您的功能也应该有效。

关于javascript - Javascript 和 datediff mysql 中的日期之间的日期差异不相等,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18653082/

相关文章:

javascript - 正则表达式包含所有特定模式并仅排除一种情况

javascript - 等待 Promise 返回的第一个 true 的干净方式

javascript - Google Maps For Rails - 仅在搜索结果发生变化时通过 ajax 更新标记

php - 如何通过php和MySQL显示数据?

java - org.apache.openjpa.persistence.PersistenceException : null keys not allowed (OpenJPA)

javascript - 闭包中变量未定义?

javascript - 如何在原型(prototype)的 $() 实用方法中传递变量值?

mysql - 如何从 .ibd 文件重新创建 MySQL InnoDB 表?

php - 在 codeigniter 中将查询保留在 "VIEW"之外

mysql - 将字段编号替换为其在表 sql、mysql 中的行位置