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


Posted in Javascript onAugust 16, 2017

准备知识

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

Javascript 相关文章推荐
jQuery Select(单选) 模拟插件 V1.3.62 改进版
Jul 17 Javascript
jquery删除提示框弹出是否删除对话框
Jan 07 Javascript
纯javascript实现简单下拉刷新功能
Mar 13 Javascript
jQuery插件版本冲突的处理方法分析
Jan 16 Javascript
JS实现二叉查找树的建立以及一些遍历方法实现
Apr 17 Javascript
详解Vue使用命令行搭建单页面应用
May 24 Javascript
VUE axios上传图片到七牛的实例代码
Jul 28 Javascript
温故知新——JavaScript中的字符串连接问题最全总结(推荐)
Aug 21 Javascript
vue+webpack模拟后台数据的示例代码
Jul 26 Javascript
jquery获取img的src值实例介绍
Jan 16 jQuery
解决JQuery的ajax函数执行失败alert函数弹框一闪而过问题
Apr 10 jQuery
Vue数据双向绑定原理实例解析
May 15 Javascript
label+input实现按钮开关切换效果的实例
Aug 16 #Javascript
bootstrap modal+gridview实现弹出框效果
Aug 15 #Javascript
vue实现点击图片放大效果
Aug 15 #Javascript
jquery获取链接地址和跳转详解(推荐)
Aug 15 #jQuery
JavaScript获取tr td 的三种方式全面总结(推荐)
Aug 15 #Javascript
全面解析jQuery中的$(window)与$(document)的用法区别
Aug 15 #jQuery
Vue组件通信实践记录(推荐)
Aug 15 #Javascript
You might like
BBS(php & mysql)完整版(七)
2006/10/09 PHP
linux命令之调试工具strace的深入分析
2013/06/03 PHP
php生成EAN_13标准条形码实例
2013/11/13 PHP
PHP实现webshell扫描文件木马的方法
2017/07/31 PHP
PHP检测接口Traversable用法详解
2017/12/29 PHP
PHP常用字符串输出方法分析(echo,print,printf及sprintf)
2021/03/09 PHP
JavaScript 获得选中文本内容的方法
2009/02/15 Javascript
基于jquery的时间段实现代码
2012/08/02 Javascript
jQuery弹出(alert)select选择的值
2013/04/21 Javascript
jQuery中[attribute^=value]选择器用法实例
2014/12/31 Javascript
jQuery使用before()和after()在元素前后添加内容的方法
2015/03/26 Javascript
JavaScript数组去重的五种方法
2015/11/05 Javascript
多种jQuery绑定事件的实现方式
2016/06/13 Javascript
原生js实现打字动画游戏
2017/02/04 Javascript
扩展bootstrap的modal模态框-动态添加modal框-弹出多个modal框
2017/02/21 Javascript
JS实现的Unicode编码转换操作示例
2017/04/28 Javascript
详解基于vue-router的动态权限控制实现方案
2017/09/28 Javascript
原生JS进行前后端同构
2018/04/22 Javascript
mpvue中使用flyjs全局拦截的实现代码
2018/09/13 Javascript
express 项目分层实践详解
2018/12/10 Javascript
js实现点击图片在屏幕中间弹出放大效果
2019/09/11 Javascript
Vue 通过公共字段,拼接两个对象数组的实例
2019/11/07 Javascript
解决echarts 一条柱状图显示两个值,类似进度条的问题
2020/07/20 Javascript
Python 调用DLL操作抄表机
2009/01/12 Python
python实现决策树分类算法
2017/12/21 Python
Python高阶函数与装饰器函数的深入讲解
2020/11/10 Python
解决Firefox下不支持outerHTML问题代码分享
2014/06/04 HTML / CSS
韩国三大免税店之一:THE GRAND 中文免税店
2016/07/21 全球购物
几道PHP面试题
2013/04/14 面试题
医学院护理专业应届生求职信
2013/11/12 职场文书
银行求职信个人范文
2013/12/16 职场文书
简历中的自我评价怎么写
2014/01/29 职场文书
2015中学学校工作总结
2015/07/20 职场文书
爱国教育主题班会
2015/08/14 职场文书
《乌鸦喝水》教学反思
2016/02/19 职场文书
Python中glob库实现文件名的匹配
2021/06/18 Python