js Date 時間戳 時區等問題總結


js 的Date 時間戳並沒有時區的概念  在任何時區 打印new Date(1) 顯示的都是相對時間 如下:

var t = new Date(1);
t     // Thu Jan 01 1970 08:00:00 GMT+0800 (中國標准時間)
//將電腦的時區 改為UTC+02:00 大馬士革 的時區在同樣在控制台執行
var k = new Date(1); k //Thu Jan 01 1970 02:00:00 GMT+0200 (東歐標准時間)

  

所以我們在做項目時 往往會將當地時間轉化為零時區時間,若是時間字符串需要差值一個時區的時間 ;但是若是時間戳,直接將時間字符串放入new Date()中就可以了 ;同樣的 若傳遞過來的是時間戳 想想顯示當地時間 也不需要做任何轉化

//傳入的是本地時區的時間字符串 轉化為0時區的時間戳(部分時區 時間戳哪個時區的都一樣) 
function covertUTCnTo0Time(str){
    return new Date(str).getTime()
}
//傳入的是0時區的時間字符串 轉化為本地時間字符串 經過new Date().getTime() 轉化為時間戳了 ,就不需要手動的在增減時區的時間了   
 function covert0TimeToUTC(str){
     var stamp = new Date(str).getTime()
     return dateFormat(new Date(stamp),'yyyy-MM-dd hh:mm:ss')
 }
//dateFormat 為自己寫的一個時間轉化函數

  

否則時間會有一個時區的差距


免責聲明!

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



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