И тут я не могу понять 3 вещи: 1) действительно ли getTimezoneOffset () уже содержит информацию о дневном свете
Момент - это обертка для объектов Date в ECMAScript.Смещение часового пояса для встроенного экземпляра Date зависит от настроек хост-системы.В зависимости от реализации он может отражать или не отражать исторические изменения часовых поясов для соответствующей даты (т. Е. Даты, когда метод вызывается).По крайней мере, он будет отражать текущие настройки.
2), а если нет, то какой лучший способ проверить это - пользователь в летнее время (потому что я читал, что в данный момент у некоторых стран и городов нетэто своя база)
Нужно определить "лучше".Помимо других библиотек (например, Luxon ), существуют веб-API, такие как timezonedb и Date.prototype.toLocaleString с опцией timeZone , в которой используются названия местоположений IANA , например "Азия / Шанхай".Вы также можете загрузить и использовать базу данных часовых поясов IANA, если хотите.
3) возвращает дату Moment (). Add (Moment (). UtcOffset (), 'm') с сохранением дневного света.?
Вы не можете изменить смещение часового пояса, есть только геттер, поэтому к любой «локальной» дате будет применено смещение часового пояса, будь то стандартное или летнее смещение для конкретногодата и место.Все вышеперечисленное делает смещение времени на смещение, оно не меняет часовой пояс (если только он не смещен за границу перехода на летнее время).
Объекты даты в основе имеют UTC, поэтому общий подход заключается в использованииUTC для всего и только смещение часового пояса для представления.Это не охватывает все сценарии, но это делает большинство.В остальных случаях требуются особые подходы, основанные на вариантах использования.
Если вы опишите, что вы пытаетесь сделать, вы можете получить более релевантные ответы.