У меня есть пользователь, который вводит информацию для запроса, включая день, время начала и время окончания.
Все эти даты и время вводятся в часовом поясе, который может меняться от запроса к запросу.
Мне нужно убедиться, что я правильно преобразовываю дату и время из часового пояса текущих запросов в UTC, прежде чем сохранять это в базе данных.
Эти значения вводятся во внешнем интерфейсе (Vue. js) и пересылается через запрос API к бэкэнду (PHP / Laravel) в виде отформатированной строки через moment.js, также используя момент-часовой пояс.
Я поддерживаю фронт и бэкэнд, чтобы я могработать с любым из них, где это необходимо.
Из документов о часовых поясах я вижу, что могу сделать что-то вроде: moment.tz(myDateString, myTimeZone);
до "Форматировать даты в любом часовом поясе"
Итак, у меня естьдата / время 2019-10-22 10:00 AM
и текущий часовой пояс America/New_York
.
Я надеялся, что выполнение var startTime = moment.tz('2019-10-22 10:00 AM', 'America/New_York')
настроит меня на то, чтобы я мог просто сделать startTime.clone().utc().toISOString()
, что дало бы мне 2019-10-22 10:00am
'Америка /New_York 'в UTCно, похоже, он выключен.
Я надеялся, что моя начальная дата будет выглядеть как 2019-10-22 10:00 AM
как в часовом поясе Америка / Нью-Йорк, но похоже, что первоначальная дата будет в UTCпросто смещает его в часовой пояс Америки / Нью-Йорка.
Когда я запускаю startTime.format()
, я возвращаюсь 2019-10-22T06:00:00-04:00"
, который, если я правильно понимаю, представляет 6-часовой часовой пояс "Америка / Нью-Йорк", а не 10:10 утра Америка /Часовой пояс New_York, как я и надеялся.
Итак, как говорится в моем вопросе: я ищу лучший способ, позволяющий пользователю вводить дни и время в любом часовом поясе, а затем убедиться, что он правильно конвертируется изчасовой пояс, который они использовали для UTC для хранения базы данных?