JavaScript 时间戳
1、JavaScript 的时间对象转换为时间戳
1.1、时间对象转时间戳的 5 种写法
在 JavaScript 中,将时间对象转换为时间戳的方法有 5 种,示例如下:
// 定义一个时间对象 dt,然后依次演示各种将 dt 转换为时间戳的写法
var dt = new Date("2019-07-04 23:59:59.999");
// 写法一,精确到毫秒,得到 13 位时间戳 1562255999999
console.log(dt.getTime());
// 写法二,精确到毫秒,得到 13 位时间戳 1562255999999
console.log(dt.valueOf());
// 写法三,精确到毫秒,得到 13 位时间戳 1562255999999
console.log(Number(dt));
// 写法四,精确到毫秒,得到 13 位时间戳 1562255999999
console.log(+dt);
// 写法五,精确到秒,得到 13 位时间戳 1562255999000,后三位固定为 000
console.log(Date.parse(dt));
1.2、获得当前时间的时间戳
在 JavaScript 中,当前时间可用new Date()
表示,再结合上文中时间对象转时间戳的写法,那么就能获得当前时间的时间戳了,示例如下:
new Date().getTime(); // 方法一
new Date().valueOf(); // 方法二
Date.parse(new Date()); // 方法三
Number(new Date()); // 方法四
+new Date(); // 方法五
执行结果如下图:
1.3、获得 10 位数的时间戳
在 JavaScript 中,通过时间对象转换得到的时间戳都是 13 位的,但有时候我们也需要精确到秒的 10 位时间戳,比如微信支付用的就是 10 位的时间戳。要在 JavaScript 获得 10 位的时间戳,大致思路有两个,要么截取前 10 位,要么除以 1000。示例如下:
// 将 13 位时间戳除以 1000 然后再取整,得到 10 位时间戳数字
parseInt(+new Date()/1000);
// 将 13 位时间戳转换为字符串截取前 10 位,得到 10 位时间戳字符串
(+new Date()).toString().substring(0,10); // 截取第 0~9 位
(+new Date()).toString().substr(0,10); // 从第 0 位开始截取 10 位
2、JavaScript 的时间戳转换为时间对象
在 JavaScript 中,时间戳转时间对象的方法非常简单,直接将一个时间戳做为Date
的参数即可,示例如下:
// 注意:参数中的时间戳必须是 13 位的,多一位或少一位都不行
new Date(1562169599000);
// 将时间戳转换为更加直观形象的本地时间
new Date(1562169599000).toLocaleString();
执行结果如下图:
3、总结
自从前后端完全分离的开发模式流行起来之后,本人就彻底成了一名后端开发,也就很少再写前端代码了。但在与前端对接的过程中,偶尔还是需要用到一些前端技术,比如 JavaScript 时间戳。
无论什么代码,写的少了自然也就生疏了,经常是双手摸着键盘死都想不起来具体要怎么写。要么一写就错反复改,要么想不起来上网查,总之是比较浪费时间。
于是我一狠心一跺脚,就写了这篇 JavaScript 时间对象与时间戳互相转换的小文。
本文链接:http://www.cnblogs.com/hanzongze/p/js-timestamp.html
版权声明:本文为博客园博主 韩宗泽 原创,作者保留署名权!欢迎通过转载、演绎或其它传播方式来使用本文,但必须在明显位置给出作者署名和本文链接!个人博客,能力有限,若有不当之处,敬请批评指正,谢谢!
分类:
07 前端备忘录
标签:
javascript
, 前端
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?