js Date對象要注意的問題(時間轉換)


 

1、時間戳和時間對象可以靈活轉變:

let  n = new Date()  // 返回的是當前時間對應的國際時間
let nt =n.getTime() let n2 =new Date(nt) console.log(n,nt,n2)

輸出為當前時間和時間戳:

Date 2018-12-06T06:41:56.217Z

1544078516217

Date 2018-12-06T06:41:56.217Z

2、時間轉換的字符串參數格式不同,返回的時間格式有時會不同

// 時分秒如果有參數,返回的是參數中的本地時間對應的國際時間。
let i = new Date('2018-12-06 0:0:0')
let j = new Date('2018/12/06 0:0:0') 輸出 :Date 2018-12-05T16:00:00.000Z    Date 2018-12-05T16:00:00.000Z
// 時分秒如果沒有參數, ‘-’ 符號的返回的是國際標准時間0點,‘/’符號返回的是本地時間0點對應的國際時間
let i2 = new Date('2018-12-06')
let j2= new Date('2018/12/06')
console.log(i2,j2)

輸出:Date 2018-12-06T00:00:00.000Z
    Date 2018-12-05T16:00:00.000Z
// 時間戳對比確認
console.log(i.getTime(),j.getTime(),i2.getTime(),j2.getTime())
輸出:1544025600000 1544025600000 1544054400000 1544025600000 
console.log(j == j2)
輸出: false

3、非字符串參數,記得月份是0-11:

let ii = new Date(2018,12,6,0,0,0)
let ii2 = new Date(2018,12,6)
console.log(ii,ii2)

輸出的是本地時間0時對應的國際時間:

Date 2019-01-05T16:00:00.000Z
Date 2019-01-05T16:00:00.000Z

4、參數為時間戳,輸出的是國際時間

let i1 =new Date('2018-12-06 0:0:0')
let i2 =new Date('2018-12-06 0:0:0').getTime()
let i3 =new Date(i2)

console.log(i1,i2,i3)

輸出:

Date 2018-12-05T16:00:00.000Z

1544025600000

Date 2018-12-05T16:00:00.000Z
 
 

 總結:慎用 2018-12-06 格式的參數,傳入Date的參數大都代表本地時間,輸出的值都是對應的國際時間

附加控制台返回值圖:

 

 

友情鏈接: https://www.cnblogs.com/hjsblogs/p/5842717.html           這個大神說得很具體。

  

  

  

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM