" 1、JavaScript 的時間對象轉換為時間戳 " "1.1、時間對象轉時間戳的 5 種寫法" "1.2、獲得當前時間的時間戳" "1.3、獲得 10 位數的時間戳" " 2、JavaScript 的時間戳轉換為時間對象 " " 3、總結 " 1、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
版權聲明:本文為博客園博主 韓宗澤 原創,作者保留署名權!歡迎通過轉載、演繹或其它傳播方式來使用本文,但必須在明顯位置給出作者署名和本文鏈接!個人博客,能力有限,若有不當之處,敬請批評指正,謝謝!