当前位置:首页 > 日记 > 正文

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

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.385Zvar 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.084Zvar 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时间戳的简单介绍(必看篇)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。

相关文章

ps怎么在岩石上刻文字? ps岩石刻字

ps怎么在岩石上刻文字? ps岩石刻字

教程,文字,岩石,上刻,电脑软件,ps中想要在岩石中雕刻文字,该怎么雕刻呢?下面我们就来看看详细的教程。软件名称:Adobe Photoshop 8.0 中文完整绿色破解版软件大小:150.1MB更新时间:2015-11-041、首先启动Photoshop cs5,执行文件-打开命令,打开一副…

[js高手之路]单例模式实现模态框的

[js高手之路]单例模式实现模态框的

模态框,单例模式,之路,示例,高手,什么是单例呢?单,就是一个的意思。例:就是实例化出来的对象,那合在一起就是保证一个构造函数只能new出一个实例,为什么要学习单例模式呢?或者说单例模式有哪些常见的应用场景.它的使用还是很广泛,比如:弹出一个模态…

ajax异步请求刷新

ajax异步请求刷新

刷新,异步请求,电脑软件,ajax,在网站刷新的方法中,ajax刷新是一种用户体验良好的刷新方式,在结合ssh等流行的框架!最为常用了!下面就是常用一个ajax刷新表单的一个demo.$(document).ready(function () { testchaxun(); setInterval("testch…

JS设置CSS样式的方式汇总

JS设置CSS样式的方式汇总

设置,样式,方式,电脑软件,JS,1. 直接设置style的属性 某些情况用这个设置 !important值无效如果属性有'-‘号,就写成驼峰的形式(如textAlign) 如果想保留 - 号,就中括号的形式 element.style[‘text-align'] = ‘100px';element.style.he…

css和js实现弹出登录居中界面完整

css和js实现弹出登录居中界面完整

界面,登录,弹出,完整,代码,我实现的这个和许多网站上的登录弹出窗口差不多,大家举一反三,先看我写完后的结果。点击创建相册后会在这个屏幕的中间显示创建相册的表单,整个背景颜色变暗,点击右上角的X会关闭这个表单。html代码创建按钮<li id="…

纯js实现页面返回顶部的动画 | 超

纯js实现页面返回顶部的动画 | 超

动画,返回顶部,页面,简单,电脑软件,废话不多说,直接上代码var scrollTop = document.body.scrollTop; document.body.style.marginTop = -scrollTop + 'px'; document.body.scrollTop = 0; document.body.style.transition = 'all 1s …

PHP和Java的主要区别有哪些?哪个最

PHP和Java的主要区别有哪些?哪个最

开发语言,最适合,区别,有哪些,电脑软件,一、前言PHP和Java都是现在比较流行的二种编程语言。对于许多新手来说,都会思考如果学的时候,该学哪种语言呢?下面这篇文章给大家整理两者的区别以及一些选择建议,一起来看看吧。二、简介PHP与Java作为两…

在原生不支持的旧环境中添加兼容的

在原生不支持的旧环境中添加兼容的

方法,原生,不支持,环境,电脑软件,如下所示:if (!Object.keys) { Object.keys = (function () { var hasOwnProperty = Object.prototype.hasOwnProperty, //原型上的方法,只取自身有的属性; hasDontEnumBug = !({toString: null}).propert…

捕获未处理的Promise错误方法

捕获未处理的Promise错误方法

方法,错误,未处理,电脑软件,Promise,为了保证可读性,本文采用意译而非直译,并且对源代码进行了大量修改。另外,本文版权归原作者所有,翻译仅用于学习。使用Promise编写异步代码时,使用reject来处理错误。有时,开发者通常会忽略这一点,导致一些错误…

如何在word中插入封面

如何在word中插入封面

封面,如何在,电脑软件,word,  有时候在word文档中需要好看的封面,但是我们又不知道怎么弄,那就选择在word里面寻找吧,在下面就由小编给大家分享下在word中添加封面的技巧,希望能帮助到您。在word中添加封面的步骤如下:  步骤一:选择需要插入…

photoshop简单制作漂亮的翡翠立体

photoshop简单制作漂亮的翡翠立体

文字,漂亮,简单,电脑软件,photoshop,今天小编就为大家介绍怎样用photoshop制作漂亮的翡翠立体文字方法,推荐到,喜欢的朋友可以参考本文,希望能对大家有所帮助!1、打开你的ps软件,新建一个800*600., 72像素的文件。2、打上你想要做的文字。我这里…

ps中性灰商业人像后期精修教程

ps中性灰商业人像后期精修教程

教程,人像,后期,电脑软件,ps,后期思路:主要使用&ldquo;中性灰&rdquo;对人物的皮肤进行修饰、立体化的强化以及五官的修饰。毛发,眼珠也是重点。效果对比:经过后期精修之后,效果简单的呈现出来,放一张对比图,做完之后发现颌骨的位置有所瑕疵。教程…