Я ищу функцию javascript для преобразования даты и времени UTC в формат даты и времени проходящего часового пояса. Я должен передать часовой пояс в соответствии с местоположением пользователя. Мне не разрешено использовать какую-либо библиотеку дат.
Моя строка даты и времени в формате UTC: "2016-04-10 09:00:00.0"
Прохождение часового пояса: EST
Ожидаемый результат1: "April 10,2016"
Ожидаемый результат 2: 04 AM EST
Не могли бы вы дать некоторое представление о функции Js, чтобы выполнить мое требование?
P.S: Я не могу использовать сторонние библиотеки дат для этой работы.
2 ответа
Вы можете создать функцию, как показано ниже, для преобразования времени 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
Как видите, логика быстро усложняется, поэтому по возможности лучше использовать внешние библиотеки.
Я использую этот тайм-менеджмент, попробуйте, может быть, вы ищете это
Похожие вопросы
Новые вопросы
javascript
По вопросам программирования на ECMAScript (JavaScript/JS) и его различных диалектах/реализациях (кроме ActionScript). Обратите внимание, что JavaScript — это НЕ Java. Включите все теги, относящиеся к вашему вопросу: например, [node.js], [jQuery], [JSON], [ReactJS], [angular], [ember.js], [vue.js], [typescript], [стройный] и т. д.