Bezdepbonusu7Программирование: статьи и ответы

Вопрос

Преобразование даты и времени UTC в базе данных MySQL в часовой пояс клиентов без каких-либо библиотек

Автор вопроса: 1ntelligence0Ответов: 1

уже около 3 дней я пытаюсь преобразовать UTC Datetime, например (2020-04-18 13:41:18) во время клиентов

Например, для меня это будет: 2020-04-18 15:41:18.

Вывод: сб, 18 апреля 2020 г., 13:41:18 GMT+0200 (Mitteleuropäische Sommerzeit)

Я получаю всегда неправильное время.

В базе данных я использую DateTime как тип данных (MySQL) и сохраняю этот тип даты: 2020-04-18 13:41:18

Мой код здесь:


let unixtime = Date.parse("<?php echo $publish_date ?>") / 1000;

let publish_date = new Date(unixtime * 1000).toString();

document.write(publish_date);

Что я делаю не так?

  • Вам не нужны специальные библиотеки, и я действительно не понимаю, почему это проблема. см. developer.mozilla.org/de/docs/Web /JavaScript/Reference/ используйте его, чтобы добавить или вычесть нужное время. у сервера есть свой часовой пояс, который тоже надо включить остальное математика nbk 18.04.2020
  • Сервер автоматически сохраняет дату и время как дату и время UTC, поэтому нет специального часового пояса. 1ntelligence0 18.04.2020
  • Смотри, я дал тебе свой ответ, как я это сделал. Вы также можете взглянуть на medium.com/@toastui/< /а> nbk 18.04.2020
  • Я уже знаю эту ссылку. Теперь я знаю все ссылки, связанные с javascript и датой. Я слишком глуп, чтобы реализовать это. Вы можете помочь мне ? 1ntelligence0 18.04.2020
  • О чувак. Я до сих пор не знаю, как вычислить разницу. Он дает мне -120 и теперь???? @нбк 1ntelligence0 18.04.2020

javascripttimeutclocaldate

Ответы

Ответ 1 · рейтинг 1 · nbk

Это покажет ваше время unix и добавит или вычтет часовой пояс пользователей в минутах.

Он использует функцию jkavascript getTimezoneOffset.

let unixtime = Date.parse("<?php echo $publish_date ?>") / 1000;

let publish_date = new Date(unixtime * 1000).toString();

var newDateObj = new Date();
newDateObj.setTime(date1.getTime() + (publish_date.getTimezoneOffset() * 60 * 1000));

document.write(newDateObj);

Вы также можете использовать setTime для своей publish_date, но я не знаю, нужно ли вам время где-либо еще

Перевод вопроса и ответов сообщества Stack Overflow, лицензия CC BY-SA. Оригинал на Stack Overflow.

Похожие материалы