Я нахожусь в часовом поясе GMT +2 и переходе на летнее время.
Мое требование - задать пользователю дату и преобразовать ее в UTC без учета летнего времени.
когда я делаю console.log(new Date()),
, это дает мне "Wed Oct 26 2016 18:00:00 GMT+0300 (Turkey Daylight Time)"
Я хочу отправить серверу дату в формате UTC, которую сервер будет сохранять в базе данных.
var extractTime = new Date(timeof.edtime); //timeof.edtime contains date given by user.
var d = extractTime.getDate();
var m = extractTime.getMonth();
var y = extractTime.getFullYear();
var h = extractTime.getHours();
var mm = extractTime.getMinutes();
timeof.edtime = moment(new Date(y, m, d, h, mm)).utc().format("YYYY-MM-DD HH:mm");
После преобразования в формат UTC timeof.edtime
равно "2016-09-26 15:00"
, потому что из него вычитается 3 часа, чтобы перейти к GMT. (вычитается 2 часа стандартного турецкого времени) (вычитается -1 летнего времени) Я хочу вычесть дату из UTC, не учитывая летнее время, и в нашем случае я ожидаю, что час будет "16:00", а не "15:00"
Как преобразовать дату в UTC без учета перехода на летнее время. любое решение, использующее момент js или jquery, будет полезно. Тестирую на хроме.
просматривая несколько ссылок, он говорит, что new Date()
будет давать в стандартное время и не учитывает летнее время, но я этого не заметил и создал планку для воспроизведения new Date().toUTCString()
также учитывать летнее время, как избежать вычитания летнего времени? https://plnkr.co/edit/tjCOoJqXMHGzCD8B5LdL?p=preview