全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

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时间戳  # vue.js将unix时间戳转换为自定义时间格式  # JavaScript输出当前时间Unix时间戳的方法  # js时间戳与日期格式之间相互转换  # javascript时间戳和日期字符串相互转换代码(超简单)  # 利用 filter 机制给静态资源 url 加上时间戳  # 来防止js和css文件的缓存问题  # JS获取时间的相关函数及时间戳与时间日期之间的转换  # JS根据Unix时间戳显示发布时间是多久前【项目实测】  # 转成  # 为空  # 格林尼治  # 给大家  # 返回值  # 来了  # 可以用  # 太平洋  # 推荐使用  # 希望能  # 仅仅是  # 考虑到  # 时间为  # 这篇  # 日常生活  # 该怎么  # 之多  # 指的是  # 必看  # 小编 


相关文章: 如何通过.red域名打造高辨识度品牌网站?  ,sp开头的版面叫什么?  如何在阿里云ECS服务器部署织梦CMS网站?  零服务器AI建站解决方案:快速部署与云端平台低成本实践  大型企业网站制作流程,做网站需要注册公司吗?  专业的网站制作设计是什么,如何制作一个企业网站,建设网站的基本步骤有哪些?  怀化网站制作公司,怀化新生儿上户网上办理流程?  沈阳制作网站公司排名,沈阳装饰协会官方网站?  官网建站费用明细查询_企业建站套餐价格及收费标准指南  小型网站建站如何选择虚拟主机?  小捣蛋自助建站系统:数据分析与安全设置双核驱动网站优化  建站之星代理平台如何选择最佳方案?  如何在阿里云香港服务器快速搭建网站?  电商网站制作多少钱一个,电子商务公司的网站制作费用计入什么科目?  如何通过FTP服务器快速搭建网站?  建站之星展会模版如何一键下载生成?  如何在新浪SAE免费搭建个人博客?  Swift开发中switch语句值绑定模式  存储型VPS适合搭建中小型网站吗?  网站制作价目表怎么做,珍爱网婚介费用多少?  php json中文编码为null的解决办法  网站制作报价单模板图片,小松挖机官方网站报价?  Python文件管理规范_工程实践说明【指导】  公司网站制作费用多少,为公司建立一个网站需要哪些费用?  购物网站制作费用多少,开办网上购物网站,需要办理哪些手续?  番禺网站制作公司哪家值得合作,番禺图书馆新馆开放了吗?  新网站制作渠道有哪些,跪求一个无线渠道比较强的小说网站,我要发表小说?  高防服务器:AI智能防御DDoS攻击与数据安全保障  如何快速生成可下载的建站源码工具?  如何有效防御Web建站篡改攻击?  建站之星后台密码遗忘如何找回?  如何解决ASP生成WAP建站中文乱码问题?  如何零基础在云服务器搭建WordPress站点?  ppt制作免费网站有哪些,ppt模板免费下载网站?  如何用PHP快速搭建CMS系统?  如何在云指建站中生成FTP站点?  在线ppt制作网站有哪些软件,如何把网页的内容做成ppt?  制作旅游网站html,怎样注册旅游网站?  如何处理“XML格式不正确”错误 常见XML well-formed问题解决方法  建站之星如何配置系统实现高效建站?  图片制作网站免费软件,有没有免费的网站或软件可以将图片批量转为A4大小的pdf?  c++怎么实现高并发下的无锁队列_c++ std::atomic原子变量与CAS操作【详解】  营销式网站制作方案,销售哪个网站招聘效果最好?  广州网站设计制作一条龙,广州巨网网络科技有限公司是干什么的?  浙江网站制作公司有哪些,浙江栢塑信息技术有限公司定制网站做的怎么样?  济南企业网站制作公司,济南社保单位网上缴费步骤?  建站之星如何取消后台验证码生成?  php条件判断怎么写_ifelse和switchcase的使用区别【对比】  建站之星后台搭建步骤解析:模板选择与产品管理实操指南  如何正确选择百度移动适配建站域名? 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。