日期時間的轉換

時間戳是什麼

時間戳是指自1970年1月1日00:00:00 (世界標準時間) 起通過的毫秒數。
目前大部分狀況下爲13位,但有的時候服務器會省略存儲10位,即存儲的是秒數,由於平常使用不須要那麼精確到秒。服務器

關於Date函數

Date這裏先不贅述,可自行閱讀文檔。函數

咱們如今只須要知道,向Date裏傳入時間戳,咱們會獲得一個時間對象spa

var time = new Date(1453094034000);

clipboard.png
這個時間對象依舊不是咱們想要的時間格式,就須要咱們自行對其進行轉換。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

clipboard.png

方法以下

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());
相關文章
相關標籤/搜索