加入收藏 | 设为首页 | 会员中心 | 我要投稿 我爱制作网_池州站长网 (https://www.0566zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 服务器 > 搭建环境 > Unix > 正文

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

发布时间:2022-11-05 11:05:10 所属栏目:Unix 来源:
导读:  下面小编就为大家带来一篇JS操作时间 - UNIX时间戳的简单介绍(必看篇)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧

  准备知识

  GMT(Greenwich Mean Time) -
  下面小编就为大家带来一篇JS操作时间 - UNIX时间戳的简单介绍(必看篇)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
 
  准备知识
 
  GMT(Greenwich Mean Time) - 格林尼治时间。UTC(Universal Time Code) - 国际协调时间。PST(Pacific Standard Time,太平洋标准时间)。
 
  UTC出现的比GMT时间晚,可以认为UTC时间更加精确,不过它们之间只相差几秒钟。
 
  UTC开始时间为:1970-01-01T00:00:00.000Z(这种时间设置可以一直精确到毫秒,字母T和Z仅仅是一种格式)
 
  UNIX时间戳指的是从1970-01-01T00:00:00.000Z到现在的毫秒数。(1s=1000ms)
 
  本文需要用到的时间规定如下:
 
  机器时间 - UNIX时间戳。(mTime)
 
  人类时间 - 人类可读的各种时间。(hTime)
 
  标准字符串时间 - 1970-01-01T00:00:00.000Z(stdStrTime)
 
  GMT时间 - Tue, 15 Aug 2017 13:58:23 GMT(gmtTime)
 
  需求描述
 
  我们日常生活中要表示时间,方法非常之多,打在屏幕上就是各种字符串,另外我们还要考虑到外国人表示时间的方法。比如下面这些都可以表示某个时间:
 
  2017年8月15日20:51:22
 
  2017.08.15
 
  2017-08-15 AM
 
  6/13/2004
 
  January 12, 2004
 
  Tue May 25 2004 00:00:00 GMT-0700
 
  1970-01-01T00:00:00.000Z
 
  那么问题来了,上面这些时间表示方法格式完全不统一,如果我设计个程序要求某些东西在指定时间运行,我们该怎么表示这个时间呢?在计算机编程中我们一般用一种最标准的时间表示方式:UNIX时间戳。这种时间表示方法精确到毫秒,表示方法唯一,非常适合编程处理。
 
  核心函数
 
  new Date()
  参数可以是机器时间,参数为空时表示把当前机器时间传入。返回值是标准字符串时间。
 
  // 参数为空时
  var stdStrTime = new Date();
  console.log(stdStrTime);
  // output: 2017-08-15T14:22:08.385Z
  var gmtTime = stdStrTime.toUTCString();
  console.log(gmtTime);
  // output: Tue, 15 Aug 2017 14:22:08 GMT
  // 参数不为空时
  var stdStrTime = new Date(1502769188084);
  console.log(stdStrTime);
  // output: 2017-08-15T03:53:08.084Z
  var gmtTime = stdStrTime.toUTCString();
  console.log(gmtTime);
  // output: Tue, 15 Aug 2017 03:53:08 GMT
  转成GMT时间也可以用函数toGMTString(),该方法现在已经不推荐使用。
 
  Date.parse()
  参数为标准字符串时间,返回值是对应的机器时间。
 
  var stdStrTime = "2017-08-15T03:53:08.084Z";
  var mTime = Date.parse(stdStrTime);
  console.log(mTime);
  // output: 1502769188084
  2个问题
 
  在JS中操作时间,和在其它语言中操作时间原理上相似,核心就是解决2个问题:
 
  把机器时间转成人类时间
 
  把人类时间转成机器时间
 
  得到当前机器时间
 
  console.log(Date.now());
  // ouput: 1502802483928
  得到当前人类时间
 
  var stdStrTime = new Date();
  console.log(now);
  上面的代码在Chrome环境中输出雷氏与这样:Tue Aug 15 2017 21:09:46 GMT+0800 (China Standard Time)。在Node.js环境中输出类似与这样:2017-08-15T13:06:34.806Z
 
  给出标准字符串时间转成机器时间
 
  var stdStrTime = "2004-05-25T00:00:00.000Z";
  var mTime = Date.parse(humanTime);
  console.log(machineTime);
  // output: 1085443200000
  给出机器时间转成标准字符串时间
 
  var mTime = 1085443200000;
  var stdStrTime = new Date(mTime);
  console.log(stdStrTime);
  // output: 2004-05-25T00:00:00.000Z
  参考书籍
 
  JavaScript高级程序设计第三版
 
  以上这篇JS操作时间 - UNIX时间戳的简单介绍(必看篇)就是小编分享给大家的全部内容了unix时间戳,希望能给大家一个参考,也希望大家多多支持脚本之家。
 

(编辑:我爱制作网_池州站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章