У меня есть сайт объявлений, на данный момент у меня есть форма подписки, в которой пользователя просят указать мне свой часовой пояс.
$builder->add('timezone', ChoiceType::class, array(
'choices' => $choices
));
но я хотел бы изменить и принять эту информацию напрямую, не спрашивая пользователя в форме.
Для меня это важно, потому что у меня будет много пользователей, которые точно не знают свой часовой пояс и выберут плохой.
Фактически, я объявил, кто является магазином с датой в часовом поясе GMT, но я хотел бы отображать их в часовом поясе от кого-то кто зарегистрирован или нет на моем веб-сайте.
Для отображения у меня есть две функции:
{{ clanwar.rendezvous|localizeddate('full', 'short') }}
{{ clanwar.rendezvous|date("d F Y, G:i e P", user.timezone)}}
Первый дает дату с часовым поясом по умолчанию и берет часовой пояс с сервера. (я могу изменить это вручную) Второй должен иметь часовой пояс от зарегистрированного пользователя.
Таким образом, оба варианта нельзя использовать для того, что я хочу делать.
Думаю, мне нужно использовать функцию Javascript. Я хотел бы сохранить часовой пояс пользователя в моем сеансе и рассчитал всю дату с этой информацией. Но я не нашел хорошей функции, которая могла бы просто найти этот элемент.
Вы знаете что-нибудь, кто может мне помочь? Спасибо



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


{{ clanwar.rendezvous|date("d F Y, G:i e P", user.timezone)}}
Таким образом, вам явно нужно будет сохранить часовой пояс в объекте User или что-то в этом роде. Но это подвержено изменениям, поскольку пользователь может путешествовать / перемещаться, он может быть не столь дисциплинирован, когда дело доходит до смены часового пояса каждый раз.
Я бы посоветовал отображать дату в формате ISO в формате UTC, например, в элементе <div> со специальным классом:
<div class = "user_timezone_container">{{ clanwar.rendezvous|localizeddate('full', 'short') }}</div>
А затем сделайте небольшой скрипт JS:
$('.user_timezone_container').each(function(){
var m = moment($(this).text()); //example: "2018-04-03T09:30:26Z"
$(this).text(m.local().format('YYYY-MM-DD HH:mm:ss'));
})
Я взял приведенный выше пример из вопроса SO Момент Js UTC по местному времени
Понятно, что ни jQuery, ни MomentJS не нужны, но я использовал их здесь для удобства ...
Спасибо за вашу помощь