С сервера я получаю переменную datetime в следующем формате: 29.06.2011 4:52:48 PM
, и это время в формате UTC. Я хочу преобразовать его во время браузера текущего пользователя с помощью JavaScript.
Как это можно сделать с помощью JavaScript или jQuery?
я создал одну функцию, которая преобразовывает все часовые пояса в местное время.
я не сделал используемого getTimezoneOffset (), потому что он не делает возвращает надлежащее значение смещения
Требования:
1. npm i moment-timezone
function utcToLocal(utcdateTime, tz) {
var zone = moment.tz(tz).format("Z") // Actual zone value e:g +5:30
var zoneValue = zone.replace(/[^0-9: ]/g, "") // Zone value without + - chars
var operator = zone && zone.split("") && zone.split("")[0] === "-" ? "-" : "+" // operator for addition subtraction
var localDateTime
var hours = zoneValue.split(":")[0]
var minutes = zoneValue.split(":")[1]
if (operator === "-") {
localDateTime = moment(utcdateTime).subtract(hours, "hours").subtract(minutes, "minutes").format("YYYY-MM-DD HH:mm:ss")
} else if (operator) {
localDateTime = moment(utcdateTime).add(hours, "hours").add(minutes, "minutes").format("YYYY-MM-DD HH:mm:ss")
} else {
localDateTime = "Invalid Timezone Operator"
}
return localDateTime
}
utcToLocal("2019-11-14 07:15:37", "Asia/Kolkata")
//Returns "2019-11-14 12:45:37"
Можно получить сделанное использование файл moment.js .
Его простые, которые Вы имеете просто, упоминают место часового пояса.
Пример: Если Вы для преобразования даты и времени в часовой пояс Азии/Калькутты необходимо просто упомянуть, что название места часового пояса получило от moment.js
var UTCDateTime="Your date obtained from UTC";
var ISTleadTime=(moment.tz(UTCDateTime, "Africa/Abidjan")).tz("Asia/Kolkata").format('YYYY-MM-DD LT');