1. 程式人生 > 實用技巧 >JavaScript 時間戳

JavaScript 時間戳

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
版權宣告:本文為部落格園博主韓宗澤原創,作者保留署名權!歡迎通過轉載、演繹或其它傳播方式來使用本文,但必須在明顯位置給出作者署名和本文連結!個人部落格,能力有限,若有不當之處,敬請批評指正,謝謝!