时间戳 时间

背景

由于团队业务做的是国际项目,就无法避免一个问题--时区问题,很多业务都是跟时间有关。一些时间的对比,时间的展示,都会涉及到时区和时间戳,所以花点时间来简单总结一下

概念

  • 时间戳
    时间戳是一个自增的整数,它表示从1970年1月1日零时整的GMT时区开始的那一刻,到现在的毫秒数。假设浏览器所在电脑的时间是准确的,那么世界上无论哪个时区的电脑,它们此刻产生的时间戳数字都是一样的,所以,时间戳可以精确地表示一个时刻,并且与时区无关
  • 时区
    时区(Time Zone)是地球上的区域使用同一个时间定义。1884年在华盛顿召开国际经度会议时,为了克服时间上的混乱,规定将全球划分为24个时区。在中国采用首都北京所在地东八区的时间为全国统一使用时间。

时间戳定义:0时区1970年1月1日到现在的毫秒数,所以全世界同一时刻的时间戳都是一样的。
北京时间对应时间戳=unix(0时区对应时间的时间戳) - 8 * 60 * 60 * 1000(8小时的毫秒数)
印度时间对应时间戳=unix(0时区对应时间的时间戳) - 5.5 * 60 * 60 * 1000(5.5小时的毫秒数)
印度时间对应时间戳=北京时间对应时间戳 + 2.5 * 60 * 60 * 1000 (换算出来是加号)
例如:1970年1月1日0时0分0秒(北京时间)= -28800000
1970年1月1日0时0分0秒(印度时间)= -19800000

实际上,只要我们传递的是一个number类型的时间戳,我们就不用关心时区转换。任何浏览器都可以把一个时间戳正确转换为本地时间。

posted @ 2017-09-05 11:24  whendream  阅读(1245)  评论(0编辑  收藏  举报