博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
项目中的那些事---时间戳(一)
阅读量:4982 次
发布时间:2019-06-12

本文共 2667 字,大约阅读时间需要 8 分钟。

一、时间戳

简单讲,unix时间戳就是从1970-01-01开始所经过的秒数,什么时候获取时间戳,就是到那个时间点所经历的秒数。

二、JavaScript获取时间戳

根据时间戳的定义,可以使用javascript中的几个方法来获取系统当前的时间戳:

1、getTime()

w3c school的解释如下:

根据上面的定义,我们可以获取系统当前的时间戳:

var timeStamp1 = new Date().getTime();console.info(timeStamp1); 输出:1524662952173

2、parse()

根据上面的解释,parse方法返回的是指定日期和时间到1970年1月1日的毫秒数,所以只要将日期指定为系统当前时间,就能获取系统当前的时间戳。

var timeStamp2 = Date.parse(new Date());console.info(timeStamp2); 输出:1524662952000

3、valueOf()

  

该方法返回的是Date对象的原始值,且和getTime返回相同的值,所以只要Date对象为系统当前时间,就能获取系统当前的时间戳

var timeStamp3 = (new Date()).valueOf();console.info(timeStamp3); 输出:1524662952176

 以上是获取系统当前时间的时间戳,如果要获取指定时间的时间戳,只需要设置指定日期,然后用对应的日期对象进行操作即可,不再赘述。

从上面的结论可以看出,通过parse方法获取的时间戳后三位都是0,如果用更多的数据测试,都会发现该方法返回的时间戳没有其他两种方法精确,

因为其后三位始终是0.

二、将时间戳转化为日期

上面介绍的是获取时间戳,也就是日期转时间戳的方法,再来学习一下时间戳转日期的方法。

转成日期的方法也很简单,只要将时间戳传给Date即可,然后格式化成想要的格式,如YYYY-MM-DD hh:mm:ss

值得注意的一点是,在转日期之前要先判断时间戳是否是13位,如果不是13位,需要将不够的几位在低位用0代替,

例如:时间戳是1234567891  则在传给Date()之前要转成1234567891000

/**	 * 将unix时间戳转化成日期格式	 */	function timestamp2date(timestamp){		var date = new Date(timestamp);		var strLen = timestamp.toString().length;		//判断时间戳是否不足13位,不足时低位补0,即乘以10的所差位数次方		if( strLen < 13){			var sub = 13 - strLen;			sub = Math.pow(10,sub);//计算10的n次方			date = new Date(timestamp*sub);		}		var y = date.getFullYear()+'-';		var M = (date.getMonth()+1 < 10 ? '0'+(date.getMonth()+1) : date.getMonth()+1) + '-';		var d = date.getDate() + ' ';		var h = date.getHours() + ':';	    var m = date.getMinutes() + ':';		var s = date.getSeconds();				return y+M+d+h+m+s;	}	var ts = timestamp2date(1234567891);	console.info(ts);         输出结果:2009-02-14 7:31:31	var ts = timestamp2date(1234567891000);	console.info(ts);         输出结果:2009-02-14 7:31:31

为了验证上面的结论,将补0部分去掉,结果如下:

/**     * 将unix时间戳转化成日期格式     */    function timestamp2date(timestamp){        var date = new Date(timestamp);        var strLen = timestamp.toString().length;        //判断时间戳是否不足13位,不足时低位补0,即乘以10的所差位数次方        /* if( strLen < 13){            var sub = 13 - strLen;            sub = Math.pow(10,sub);//计算10的n次方            date = new Date(timestamp*sub);        } */        var y = date.getFullYear()+'-';        var M = (date.getMonth()+1 < 10 ? '0'+(date.getMonth()+1) : date.getMonth()+1) + '-';        var d = date.getDate() + ' ';        var h = date.getHours() + ':';        var m = date.getMinutes() + ':';        var s = date.getSeconds();                return y+M+d+h+m+s;    }    var ts = timestamp2date(1234567891);    console.info(ts);    输出结果:1970-01-15 14:56:7    var ts = timestamp2date(1234567891000);    console.info(ts);    输出结果:2009-02-14 7:31:31

以上就是JavaScript中日期和时间戳的转化,如有错误之处,感谢指正!

转载于:https://www.cnblogs.com/hellowhy/p/8878046.html

你可能感兴趣的文章
Flutter工程目录
查看>>
hive 函数 current_date()
查看>>
使用python+selenium对12306车票数据读取
查看>>
服务器Config文件不能查看的问题
查看>>
UIImage与CCSprite互相转换
查看>>
jsp详解
查看>>
大型网站架构图
查看>>
新概念英语(1-133)Sensational news!
查看>>
Magnifier笔记
查看>>
git项目,VSCode显示不同颜色块的含义
查看>>
串口配置
查看>>
centos的安装,网络的调试
查看>>
dfs枚举
查看>>
线程等待问题
查看>>
(四)rsync未授权访问
查看>>
喜欢就好
查看>>
MVC3基础嵌套总结
查看>>
QML 基本可视元素之Rectangle 七
查看>>
Python--set常用操作函数
查看>>
Java基于Tomcat Https keytool 自签证书
查看>>