【发布时间】:2013-10-28 09:22:41
【问题描述】:
我需要用 6 位小数计算两个日期之间的天数。我正在使用以下function:
/**
* Calculates the day difference for two given dates.
*
* @param {Date} from , the start date
* @param {Date} to , the end date
*
* @return {Number} the day difference
*/
function calculateDayDifference( from, to ) {
var dayDifference;
const ONEDAY = 1000 * 60 * 60 * 24;
if ( from != null && to != null ) {
dayDifference = Math.abs( from - to ) / ONEDAY;
}
return dayDifference;
}
问题是,以下示例的计算不正确:
- 从 23.10.2013 10:00 到 01.11.2013 00:00
它返回 8.625,但正确的值是 8,583333。这个错误的值differs 1 hour from the correct value。
以下情况:
- 从01.11.2013 00:00到07.11.2013 10:00
返回值6,416667是正确的。
【问题讨论】:
-
您的夏令时似乎有问题。当我们回到 CET 时,在 2013 年 10 月 27 日 03:00 CEST(我的时区)“添加”了一小时。恐怕 Javascript 没有开箱即用的处理 DST 的规定。
标签: javascript date datetime time