我们不知道的DATE

知识普及:
GMT:
格林尼治标准时间(GMT,旧译“格林威治平均时间”或“格林威治标准时间”)是指位于伦敦郊区的皇家格林尼治天文台的标准时间,因为本初子午线被定义在通过那里的经线。
理论上来说,格林尼治标准时间的正午是指当太阳横穿格林尼治子午线时(也就是在格林尼治上空最高点时)的时间。由于地球在它的椭圆轨道里的运动速度不均匀,这个时刻可能和实际的太阳时相差16分钟。
地球每天的自转是有些不规则的,而且正在缓慢减速。所以,格林尼治时间已经不再被作为标准时间使用。现在的标准时间——协调世界时(UTC)——由原子钟提供。
自1924年2月5日开始,格林尼治天文台每隔一小时会向全世界发放调时信息 。

UTC:
协调世界时(UTC) ,世界统一时间,世界标准时间,国际协调时间。
协调世界时是以原子时秒长为基础,在时刻上尽量接近于世界时的一种时间计量系统。国际原子时的准确度为每日数纳秒,而世界时的
准确度为每日数毫秒。
一种称为协调世界时的折衷时标于1972年面世。
为确保协调世界时与世界时相差不会超过0.9秒,在有需要的情况下会在协调世界时内加上正或负闰秒。
因此协调世界时与国际原子时之间会出现若干整数秒的差别。位于巴黎的国际地球自转事务中央局负责决定何时加入闰秒。

为什么时间戳最小时间是1970年1月1日 0点
设定一个时间的最小值,然后设置一个变量,每过一秒,这个变量就加1。所以当前时间就是最小时间与变量的和。最初计算机操作系统是32位,而时间也是用32位表示。32位能表示的最大值是2147483647。另外1年365天的总秒数是31536000,2147483647/31536000= 68.1,也就是说32位能表示的最长时间是68年,也就是说,以当时的计算机水平,能够记住的时间最多是68年,因为那个变量最多能够存那么多秒数。那时候20世纪中后期,那时候人们就需要制定时间的最小值啊。总不能是0001年吧,那即使加上68年也远远没到那会的时间啊。最终综合考量,决定把1970年1月1日0点定位最小值。因为那时候32位系统足以解决那个年头的计数问题。
现在我们思考,如果是1970年是最小年头,32位系统的话,那么到了2038年01月19日03时14分07秒(这个就是32位能够记住的最大的数),时间还是会回归到最小值。
上边说过了,那时候是七八十年代,已经足以解决当时的问题了。他们想,2038年出现问题,就让那时候的后代去解决吧。事实上他们是对的,因为现在我们已经解决了这个问题,就是64位系统,因为用64位操作系统可以表示到292,277,026,596年12月4日15时30分08秒,相信我们的N代子孙,哪怕地球毁灭那天都不用愁不够用了,因为这个时间已经是千亿年以后了

一:JavaScript Date 对象

实例:document.write(Date())
输出:Mon    Apr   16   2018 20 : 43 : 42  GMT       +        0800    (CST)
说明:[星期] [月份] [日] [年]  [时] [分] [秒] [标准时间] [+东,-西] [八时区] [时区编码]
获取时间戳:1.getTime或者valueOf(),返回距离1970年1月1日0点的毫秒数;
            例如:(new Date()).getTime();
          2.Date对象还有一个静态方法同样返回给定日期的毫秒数。但其参数分别代表年、月、日、时、分、秒、毫秒的数字参数。
            例如:Date.UTC(1970,0,1,1,59,30);
dateObject.getTimezoneOffset()本地时间与 GMT 时间之间的时间差,以分钟为单位。方法返回的是本地时间与 GMT 时间或 UTC 时间之间相差的分钟数。
如何使用 getTimezoneOffset() 根据 GMT 来取得本地时区。

猜你喜欢

转载自blog.csdn.net/ygy901006/article/details/79967073