JS操作时间,UNIX时间戳的简单介绍(必看篇)

  

  

GMT(格林尼治标准时间)-格林尼治时间.UTC(世界时代码)——国际协调时间pst(太平洋标准时间,太平洋标准时间)。

  

UTC出现的比格林尼治时间时间晚,可以认为UTC时间更加精确,不过它们之间只相差几秒钟。

  

UTC开始时间为:1970 - 01 - 01 t00:00:00.000z(这种时间设置可以一直精确到毫秒,字母T和Z仅仅是一种格式)

  

UNIX时间戳指的是从1970 - 01 - 01 t00:00:00.000z到现在的毫秒数。(1 s=1000毫秒)

  

  

<>强机器时间 - UNIX时间戳。(mTime)

  

<强>人类时间——人类可读的各种时间。(hTime)

  

<强>标准字符串时间 - 1970 - 01 - 01 - t00:00:00.000z (stdStrTime)

  

<强>格林尼治时间时间——星期二,2017年8月15日格林尼治时间13:58:23 (gmtTime)

  

  

我们日常生活中要表示时间,方法非常之多,打在屏幕上就是各种字符串,另外我们还要考虑到外国人表示时间的方法,比如下面这些都可以表示某个时间:

  

2017年8月15日20:51:22
  

  

2017.08.15
  

  

2017-08-15
我   

  

6/13/2004
  

  2004年1月12日,


  

  

- 0700格林尼治时间2004年5月25日星期二就是
  

  

1970 - 01 - 01 t00:00:00.000z

  

那么问题来了,上面这些时间表示方法格式完全不统一,如果我设计个程序要求某些东西在指定时间运行,我们该怎么表示这个时间呢?在计算机编程中我们一般用一种最标准的时间表示方式:UNIX时间戳。这种时间表示方法精确到毫秒,表示方法唯一,非常适合编程处理。

  

        新的日期()      

参数可以是机器时间,参数为空时表示把当前机器时间传入。返回值是标准字符串时间。

     //参数为空时   var stdStrTime=new日期();   console.log (stdStrTime);//输出:2017 - 08 - 15 - t14:22:08.385z   var gmtTime=stdStrTime.toUTCString ();   console.log (gmtTime);//输出:星期二,2017年8月15日14:22:08格林尼治时间//参数不为空时   var stdStrTime=new日期(1502769188084);   console.log (stdStrTime);//输出:2017 - 08 - 15 - t03:53:08.084z   var gmtTime=stdStrTime.toUTCString ();   console.log (gmtTime);//输出:星期二,2017年8月15日格林尼治时间03:53:08      

转成格林尼治时间时间也可以用函数toGMTString(),该方法现在已经不推荐使用。

        Date.parse ()      

参数为标准字符串时间,返回值是对应的机器时间。

        var stdStrTime=" 2017 - 08 - 15 - t03:53:08.084z”;   var mTime=Date.parse (stdStrTime);   console.log (mTime);//输出:1502769188084      

  

在JS中操作时间,和在其它语言中操作时间原理上相似,核心就是解决2个问题:

  

把机器时间转成人类时间

  

把人类时间转成机器时间

  

<>强得到当前机器时间

        console.log (Date.now ());//输出:1502802483928      

<>强得到当前人类时间

        var stdStrTime=new日期();   console.log(现在);      

上面的代码在铬环境中输出雷氏与这样:2017年8月15日星期二21:09:46格林尼治标准时间+ 0800(中国标准时间)。在node . js环境中输出类似与这样:2017 - 08 - 15 t13:06:34.806z

  

<强>给出标准字符串时间转成机器时间

        var stdStrTime=?004 - 05 - 25 t00:00:00.000z”;   var mTime=Date.parse (humanTime);   console.log (machineTime);//输出:1085443200000      

<强>给出机器时间转成标准字符串时间
  

        var mTime=1085443200000;   var stdStrTime=new日期(mTime);   console.log (stdStrTime);//输出:2004 - 05 - 25 t00:00:00.000z      

<强>参考书籍

  

JavaScript高级程序设计第三版

  

以上这篇JS操作时间,UNIX时间戳的简单介绍(必看篇)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。

JS操作时间,UNIX时间戳的简单介绍(必看篇)