Date类型之时间戳
时间戳想必大家都再熟悉不过了,网上一搜能搜到很多获取方法感觉大多数都是千篇一律的那几种,所以今天萌芽就来跟大家谈谈JavaScript中几种你不一定知道但很实用的时间戳获取方式!
时间戳
简单来说时间戳指的就是从1970年1月1日午夜0点到至今经过的毫秒数!为啥是1970年呢?ECMAScript早期是参照Java的Date类构建的,而java起源于UNIX系统,UNIX系统于1970年问世也因此将1970年1月1日0点作为时间纪元。当然更深层次的这里萌芽就不深入讲了咱们言归正传。【突然想到了2000年著名的千年虫事件也挺有趣感兴趣的也可以去了解一下^_^】
常见方法
new Date().getTime() //表示返回日期的毫秒数,大多数人的选择
new Date().valueOf() //Date重写了这个方法用途和上面的一样
Date.parse(new Date) //萌芽个人不咋喜欢,只能精确到秒,不推荐
↑ 接收一个表示日期的字符串参数并尝试返回相应的日期毫秒数
你不一定知道的方法
在书上看到的的感觉这两个方法很少有人提但萌芽感觉真的赞!推荐给大家~
Date.now() //IE9+
+new Date() //支持低版浏览器
ECMAScript5添加了 Date.now() 方法,这个方法简化了使用Date对象分析代码的工作!是的!你没有看错!不需要new就能开箱即用你说说它不香吗???当然因为是后来添加的所以一些低浏览器可能不支持比如IE9以下等等。不过现在都2020年了问题不大还请大家根据自己的项目情况来使用吧~
如果浏览器版本低用不了now的话不要担心我们也可以采用 + 操作符来获取时间戳!你没有看错只需要一个 + 就可以获取到我们的时间戳啦~是不是感觉很震惊?这也可以???萌芽第一反应也是这么感叹的但是仔细想想似乎也没什么奇怪的。既然讲到这里我们就一起来回顾一下 + 操作符都有哪些 ”骚“ 操作。
加性操作符
+ 和 - 这俩操作符想必大家都再熟悉不过了不就是加减法嘛,但是在ECMAScript中却多了些骚操作。这类操作符会在后台转换不同的数据类型!当然这也可以说是弱类型语言的特色。
+ '' //打印为 0
true + false //打印为 1
null + undefined //打印为 NaN
null + true + 1 + '1' //打印为 "21"
是不是感觉和想象中的不太一样啊?如果你先前接触的是其他语言可能会觉得这种写法实在是酸爽并且难以理解。知道他会进行一个转换那么也就不难理解为什么 + new Date 会取时间戳,其实就是在类型转换的途中调用了Date.prototype 上的 valueOf 方法。现在是不是感觉豁然开朗?
瞎聊两句
感谢您花时间阅读我的这篇文章,感觉挺实用的跑出来分享一下如果有帮到大家最好不过啦,当然如果大家要是有更好的方式也可以在评论区告诉萌芽哟,拜拜 :D