簡體   English   中英

無論用戶的時區如何,如何將日期始終設置為東部時間

[英]How to set date always to eastern time regardless of user's time zone

我有一個服務器在unix時間給我的日期:1458619200000

注意:您標記為“重復”的其他問題沒有顯示如何從UNIX TIME到達那里。 我在javascript中尋找一個具體的例子。

但是,我發現根據我的時區,我會得到兩個不同的結果:

d = new Date(1458619200000)
Mon Mar 21 2016 21:00:00 GMT-0700 (Pacific Daylight Time)

//現在我將計算機設置為東部時間,我得到了不同的結果。

d = new Date(1458619200000)
Tue Mar 22 2016 00:00:00 GMT-0400 (Eastern Daylight Time)

那么我怎么能顯示日期:1458619200000 ...總是在東部時間(3月22日),不管我的電腦的時區是什么?

您可以使用Javascript中的getTimezoneOffset()函數輕松處理時區偏移。 例如,

var dt = new Date(1458619200000);
console.log(dt); // Gives Tue Mar 22 2016 09:30:00 GMT+0530 (IST)

dt.setTime(dt.getTime()+dt.getTimezoneOffset()*60*1000);
console.log(dt); // Gives Tue Mar 22 2016 04:00:00 GMT+0530 (IST)

var offset = -300; //Timezone offset for EST in minutes.
var estDate = new Date(dt.getTime() + offset*60*1000);
console.log(estDate); //Gives Mon Mar 21 2016 23:00:00 GMT+0530 (IST)

但是,后面顯示的區域設置字符串不會更改。 這個答案的來源是這篇文章 希望這可以幫助!

Moment.js( http://momentjs.com/timezone )是你的朋友。

你想做這樣的事情:

var d = new Date(1458619200000);
var myTimezone = "America/Toronto";
var myDatetimeFormat= "YYYY-MM-DD hh:mm:ss a z";
var myDatetimeString = moment(d).tz(myTimezone).format(myDatetimeFormat);

console.log(myDatetimeString); // gives me "2016-03-22 12:00:00 am EDT"

對於dayLight保存,東部時間比UTC低4小時,這就是為什么它的偏移量為-4x60 = -240分鍾。 因此,當日光未激活時,偏移將為-300。 eastTimeOffset變量值是這里要注意的關鍵點。 請在附加圖片中查看此代碼。

       var offset = new Date().getTimezoneOffset();// getting offset to make time in gmt+0 zone (UTC) (for gmt+5 offset comes as -300 minutes)
        var date = new Date();
        date.setMinutes ( date.getMinutes() + offset);// date now in UTC time

        var easternTimeOffset = -240; //for dayLight saving, Eastern time become 4 hours behind UTC thats why its offset is -4x60 = -240 minutes. So when Day light is not active the offset will be -300
        date.setMinutes ( date.getMinutes() + easternTimeOffset);

您可以在此圖片中看到此代碼的實際操作

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM