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 相关文章推荐
JavaScript 监听textarea中按键事件
Oct 08 Javascript
JavaScript 常见对象类创建代码与优缺点分析
Dec 07 Javascript
编程语言JavaScript简介
Oct 16 Javascript
js实现iframe框架取值的方法(兼容IE,firefox,chrome等)
Nov 26 Javascript
jQuery qrcode生成二维码的方法
Apr 03 Javascript
leaflet的开发入门教程
Nov 17 Javascript
angularJs使用$watch和$filter过滤器制作搜索筛选实例
Jun 01 Javascript
使用JavaScript实现链表的数据结构的代码
Aug 02 Javascript
JS遍历DOM文档树的方法实例详解
Apr 03 Javascript
深入理解Antd-Select组件的用法
Feb 25 Javascript
bootstrap-table后端分页功能完整实例
Jun 01 Javascript
详解gantt甘特图可拖拽、编辑(vue、react都可用 highcharts)
Nov 27 Vue.js
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
如何正确理解PHP的错误信息
2006/10/09 PHP
PHP脚本的10个技巧(7)
2006/10/09 PHP
php自动加载的两种实现方法
2010/06/21 PHP
php产生随机数的两种方法实例代码 输出随机IP
2011/04/08 PHP
php高级编程-函数-郑阿奇
2011/07/04 PHP
jQuery 各种浏览器下获得日期区别
2008/12/22 Javascript
多个datatable共存造成多个表格的checkbox都被选中
2013/07/11 Javascript
动态读取JSON解析键值对的方法
2014/06/03 Javascript
手机开发必备技巧:javascript及CSS功能代码分享
2015/05/25 Javascript
JavaScript中getUTCSeconds()方法的使用详解
2015/06/11 Javascript
js实现Select头像选择实时预览代码
2015/08/17 Javascript
使用struts2+Ajax+jquery验证用户名是否已被注册
2016/03/22 Javascript
底部悬浮通栏可以关闭广告位的实现方法
2016/06/01 Javascript
canvas实现图片根据滑块放大缩小效果
2017/02/24 Javascript
Angular中响应式表单的三种更新值方法详析
2017/08/22 Javascript
完美解决iview 的select下拉框选项错位的问题
2018/03/02 Javascript
node打造微信个人号机器人的方法示例
2018/04/26 Javascript
微信小程序用户位置权限的获取方法(拒绝后提醒)
2018/11/15 Javascript
原生javascript实现连连看游戏
2019/01/03 Javascript
JavaScript前端开发时数值运算的小技巧
2020/07/28 Javascript
[46:20]DOTA2-DPC中国联赛 正赛 PSG.LGD vs LBZS BO3 第二场 1月22日
2021/03/11 DOTA
python使用sqlite3时游标使用方法
2018/03/13 Python
Python利用openpyxl库遍历Sheet的实例
2018/05/03 Python
python 3.6.5 安装配置方法图文教程
2018/09/18 Python
Python判断对象是否相等及eq函数的讲解
2019/02/25 Python
python添加菜单图文讲解
2019/06/04 Python
15行Python代码实现免费发送手机短信推送消息功能
2020/02/27 Python
Pycharm安装第三方库失败解决方案
2020/11/17 Python
HTML5拖放效果的实现代码
2016/11/17 HTML / CSS
总经理助理岗位职责
2013/11/08 职场文书
会计出纳员的自我评价
2014/01/15 职场文书
经典促销广告词大全
2014/03/19 职场文书
优秀共产党员演讲稿
2014/09/04 职场文书
试用期转正工作总结2015
2015/05/28 职场文书
致创业的您:这类人不适合餐饮创业
2019/08/19 职场文书
logback如何自定义日志存储
2021/08/30 Java/Android