[英]Convert UTC datetime string to browser based timezone in javascript
[英]JavaScript : Convert the UTC datetime to passing timezone's datetime
我正在尋找將UTC日期時間轉換為傳遞時區的日期時間格式的JavaScript函數。 我必須根據用戶的位置傳遞時區。 我不允許使用任何日期庫。
我的UTC日期時間字符串: "2016-04-10 09:00:00.0"
通過時區:EST
預期"April 10,2016"
: "April 10,2016"
預期輸出2: 04 AM EST
您能否提供一些有關Js函數的見解以達到我的要求?
PS:我不能使用任何第三方日期庫來進行這項工作。
您可以創建如下函數,將UTC時間轉換為給定的時區偏移量:
//function to calculate local time function calcTime(datestring, city, offset) { d = new Date(datestring); utc = d.getTime() + (d.getTimezoneOffset() * 60000); nd = new Date(utc + (3600000 * offset)); var options = {} // an application may want to use UTC and make that visible options.timeZone = 'America/' + city; options.timeZoneName = 'short'; return nd.toLocaleString('en', options) } document.write('Local time on server: 2016-04-10T09:00:00' + '<br>') document.write('Local time in EST/EDT:' + calcTime('2016-04-10T09:00:00', 'New_York', '-5.0'));
如果您只需要支持美國的不同時區,則可以創建一個將時區偏移量匹配到正確城市的查找表
Eastern ........... America/New_York
Central ........... America/Chicago
Mountain .......... America/Denver
Mountain no DST ... America/Phoenix
Pacific ........... America/Los_Angeles
Alaska ............ America/Anchorage
Hawaii ............ America/Adak
Hawaii no DST ..... Pacific/Honolulu
如您所見,邏輯很快變得復雜,因此最好使用外部庫。
我使用這種時間管理方式,嘗試一下您正在尋找的方式
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.