Я вызываю API погоды, который возвращает мне JSON, содержащий часовой пояс -25000, и в документах он упоминается как «часовой пояс: сдвиг в секундах от UTC». Я хочу преобразовать это в фактическую дату и время с помощью JavaScript.
{
"timezone": -25200,
"id": 420006353,
"name": "Mountain View",
"cod": 200
}
Подскажите, пожалуйста, как преобразовать этот "часовой пояс: -25200" в реальное время.
подскажите, пожалуйста, как я могу сделать свой собственный маппинг?
Это будет функция, которая принимает число и возвращает смещение часового пояса в любом значении, которое вы хотите. Используйте объект. Я бы не советовал считать. Вместо этого проработайте это вручную и поместите значения в себя.
@evolutionbox видите, я не знаю, что это -25200, и я не знаю, какие вычисления необходимы для преобразования этой сущности в фактическую дату, не могли бы вы дать мне какую-нибудь подсказку (например, преобразовать км в метры, преобразовать метку времени unix в фактическое время ) так же?
Часовые пояса — это не даты. Они являются сдвигами во времени. 25200 - количество секунд.
Вы можете преобразовать часовой пояс в секундах в фактическую дату, как показано ниже.
var d = new Date((new Date().getTime())-25200*1000)
d.toISOString()
""2020-12-26T13:50:09.012Z""
getTime()
находится в мс. Пожалуйста, объясните логику вычитания значения в секундах из одного в мс
Я сделал это, но выдал ошибку «TypeError: (new Date()). .getTime())(часовой пояс)*1000) //d.toISOString(); вернуть d.toISOString(); } return(<p><em class = "white-text">{dateBuilder()}</em></p>);
@Siddhesh, ты не совсем точно скопировал пример
Хорошо, я сделал небольшую ошибку, вызвавшую ошибку, но теперь я ее исправил. но смещение времени — это количество времени, которое вычитается из времени всемирного координированного времени (UTC) или добавляется к нему для получения текущего гражданского времени. В приведенном выше коде я вижу, что значение вычитается из системного времени. как именно это работает? Пожалуйста, объясните @evolutionbox и Нарендра Кумават
@ Сиддхеш, я не понимаю. Вы только что объяснили, как это работает
@evolutionxbox Я понял, я использовал свой собственный код, чтобы получить местное время через UTC.
это дает мне неправильное время. @Siddhesh, если возможно, поделитесь своим решением
Вы сами приложили усилия?
25200
это -7 часов, вы могли бы сделать свой собственный маппинг?