簡體   English   中英

JavaScript:將UTC日期時間轉換為傳遞時區的日期時間

[英]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

如您所見,邏輯很快變得復雜,因此最好使用外部庫。

我使用這種時間管理方式,嘗試一下您正在尋找的方式

Moment.js

暫無
暫無

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

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