首页 > 编程 > JavaScript > 正文

Javascript new Date().valueOf()的作用与时间戳由来详解

2019-11-20 22:46:40
字体:
来源:转载
供稿:网友

众所周知PHP中对时间类型数据可以直接转换为时间戳,那么在前端脚本js中,也有方法可以实现,就是valueOf()

例如,我们可以通过这段代码输出当前时间点的时间戳

复制代码 代码如下:

<script type="text/javascript">
  document.write(new Date().valueOf());
</script>

那么何为时间戳呢?

时间戳就是从1970年1月1日0时0分0秒到当前时间点的所有秒数。1970.1.1 0:0:0 这个时间就是IT中所谓的“时间纪元”,相信大家在很多文章中都见过它。比如oracle的时间显示,unix和linux系统的时间运算等,那为什么选择1970,而不选择1900呢。接下来让我们阐述它的由来。

1.当32位计算机刚刚开始兴起的时候,
所谓的整数型Intger型数据能表示的最大数值为:
System.out.println(Integer.MAX_VALUE);
2147483647
2.一年365的总秒数为31536000,
3.两者相除,2147483647/31536000=68.1,
4.也就是说32位的大背景下,能表示的最长时间间隔为68年
5.如果从1970算起,可以表示到2038年 01 月 19 日 03 时 14 分 07秒,便会到达最大时间,
6.过了这个时间点,所有32 位操作系统时间便会变为 10000000 00000000 00000000 00000000
   也就是1901年12月13日20时45分52秒,这样便出现了时间回归的现象,一些软件可能为此发生重大异常。

总结以上要点,想出这套东西的人,最早其实还是那些玩儿UNIX的人,他们考虑到68年其实不长,所以就从1970开始算这68年,他们的希望是,在这68年里,后来的人能尽快搞出一套更良好的机制,改变这个限制。。。果然,64位的兴起,把这个“时间末日”从
2038年01月19日03时14分07秒 --》292,277,026,596年12月4日15时30分08秒
所以,这个数字够大,计算机时间的“世界末日”就真的是世界末日了
代码改变世界,我的《源代码》,我的世界!

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表