首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >非UTC和UTC日期比较结果不同

非UTC和UTC日期比较结果不同
EN

Stack Overflow用户
提问于 2018-06-14 15:12:15
回答 1查看 25关注 0票数 0

我们使用一种方法来计算两个日期之间的天数差异:

代码语言:javascript
复制
function getDiffDateInDays(date1: Date, date2: Date): number {
    let diffDays;

    if (date1 && date2) {
      const diff = date1.getTime() - date2.getTime();
      diffDays = Math.ceil(diff / (1000 * 3600 * 24));
    }
    return diffDays;
  }

在我们的CI跑步者(跑步者在一台机器上运行UTC时间)上出现了一些问题之后,在局部上,我们看到了我们的方法结果因时区而异。

代码语言:javascript
复制
const date2 = new Date(2018, 2, 6);
const date3 = new Date(2018, 3, 12);

getDiffDateInDays(date2, date3) => -36

使用UTC:

代码语言:javascript
复制
const date2 = new Date(Date.UTC(2018, 2, 6));
const date3 = new Date(Date.UTC(2018, 3, 12));

getDiffDateInDays(date2, date3) => -37

有人能解释一下为什么这个结果不同吗?这两个日期之间的天数应该与任何时区相同吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-06-14 15:17:11

在时区的这些日期之间有一个DST转换,它增加或减去一个小时,这将导致一整天的差异,就像ceil计算的方式一样。

UTC是免费的,没有额外的/少的小时。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50860747

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档