時間戳是指自1970年1月1日00:00:00 (世界標準時間) 起通過的毫秒數。
目前大部分狀況下爲13位,但有的時候服務器會省略存儲10位,即存儲的是秒數,由於平常使用不須要那麼精確到秒。服務器
Date這裏先不贅述,可自行閱讀文檔。函數
咱們如今只須要知道,向Date裏傳入時間戳,咱們會獲得一個時間對象spa
var time = new Date(1453094034000);
這個時間對象依舊不是咱們想要的時間格式,就須要咱們自行對其進行轉換。code
所以咱們可使用Date 的方法去獲取咱們想要的年月日時分秒的數據,來自行組裝成咱們想要的時間格式。對象
ok,咱們如今嘗試將服務器接收的1453094034000轉換爲2016-1-18 13:13:54。blog
明顯看出咱們須要從時間對象中獲取年,月,日,時,分,秒。分別對應Date的如下方法。ip
date.getFullYear(); date.getMonth(); date.getDate(); date.getHours(); date.getMinutes(); date.getSeconds();
所以,代碼以下文檔
var date = new Date(timestamp);//時間戳爲10位需*1000,時間戳爲13位的話不需乘1000 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;
Date對象給咱們提供了一些方法讓咱們直接將日期轉換爲時間對象,而後轉爲時間戳。就不須要咱們本身手動去計算日期到底距離那個標準時間多少秒了。字符串
不過,首先須要明白的是,Date目前只識別如下幾種類型的字符串或者數字的時間表達方式。咱們在上一節所轉化的字符串2016-1-18 13:13:54
是能夠識別的get
方法以下
var t = new Date('2016-1-18 13:13:54'); return t.getTime();
這裏擴展一下常常遇到的狀況,即日期的加減。
固然Date也有日期的增減方法方法。
所以,思路是,先將字符串日期轉換成時間對象,再利用Date的方法進行時間的加減,改變後,咱們再將對象轉換成字符串日期便可。
注意,在時間對象的月份存儲中,是以0-11來對應1-12月的,所以,須要注意轉換
var str = '2019-2-1'; // 初始日期 var date = new Date(); var initdate = str.split("-"); date.setFullYear(parseInt(initdate[0])); date.setMonth(parseInt(initdate[1]) - 1); date.setDate(parseInt(initdate[2]));
var num = 10; date.setMonth(date.getMonth() + num); console.log(date.getFullYear() + '-' + (date.getMonth() + 1) + '-' + date.getDate());