Date 对象
Date对象是 JavaScript 原生的时间库。它以1970年1月1日00:00:00作为时间的零点,可以表示的时间范围是前后各1亿天(单位为毫秒)。
时间戳
时间戳是指格林威治时间1970年01月01日00时00分00秒(北京时间1970年01月01日08时00分00秒)起至现在的总秒数。
格林威治和北京时间就是时区的不同
Unix是20世纪70年代初出现的一个操作系统,Unix认为1970年1月1日0点是时间纪元。JavaScript也就遵循了这一约束
最初计算机操作系统是32位,而时间也是用32位表示,数字类型的最大值是:2147483647
另外1年365天的总秒数是31536000,2147483647/31536000 = 68.1,也就是说32位能表示的最长时间是68年,而实际上到2038年01月19日03时14分07秒,便会到达最大时间,过了这个时间点,所有32位操作系统时间便会变为10000000 00000000 00000000 00000000,也就是1901年12月13日20时45分52秒,这样便会出现时间回归的现象,很多软件便会运行异常了。
至于时间回归的现象相信随着64为操作系统的产生逐渐得到解决,因为用64位操作,系统可以表示到292,277,026,596年12月4日15时30分08秒,相信我们的N代子孙,哪怕地球毁灭那天都不用愁不够用了,因为这个时间已经是千亿年以后了。
这里有个关于苹果手机的事情:据外媒报道称,iPhone又出现了一个导致变成“砖头”的操作。只要把日期设定成1970年1月1日,关机后重启手机,你的手机很可能会变成“砖头”,即便是进入DFU模式都无法刷机,只能到售后解决问题。
而后苹果的处理更是简单粗暴,不允许设置1970年1月1
普通函数的用法
Date对象可以作为普通函数直接调用,返回一个代表当前时间的字符串。
代码语言:javascript复制Date()
// "Tue Dec 01 2015 09:34:43 GMT 0800 (CST)"
注意,即使带有参数,Date作为普通函数使用时,返回的还是当前时间。
代码语言:javascript复制Date(2000, 1, 1)
// "Tue Dec 01 2015 09:34:43 GMT 0800 (CST)"
上面代码说明,无论有没有参数,直接调用Date总是返回当前时间。