FishHookЯ беру миллисекунды в UTC и изменяю их. А делаю я это для того, чтобы фоновые функции, преобразующие миллисекунды в дату, могли учесть високосный год и переходы на зимнее/летнее время. Таймзона начинает работать только после того, как основное время выяснено, и отсчитывается от него.
Поэтому, когда для отображения времени в разных таймзонах, ты изменяешь количество миллисекунд, ты совершаешь ошибку, ты буквально изменяешь время, о чем тебя не просили.
FishHookНо в такой дате есть как методы получения часов/дней в таймзоне, так и методы получения часов/дней в UTC, которые для всех таймзон одинаковые.
Поэтому в каком формате ты не передавай дату с сервера, ЖС создаст дату в таймзоне браузера.
FishHookТы передаёшь всё в UTC и только при принятии переводишь в свою таймзону. Это то же самое, что с эндианством, - для передачи выбирается определённый формат (big-endian), а потом на концах преобразуется в соотвествии с архитектурами.
Но теперь мне надо заняться переводом московского времени в якутское!
Не надо время передавать в таймзоне; надо время передавать в UTC.
FishHookДаже преобразовывать ничего не надо. Ты принял в UTC и можешь не преобразовывать его. Оно само отобразится в таймзоне, взятой с компа.
Но и хрен бы с ним, но если я поступлю по твоей методе, просто возьму и прихреначу пару часов к дате, то я получу другое время
Ты просил все часовые пояса вывести - я тебе вывел. Может, там плюс/минус надо использовать (я точно не помню), но это не суть, так как сводится к подравниванию массива чисел.
FishHookВ UTC он должен отправить. Если он попадёт в будущее - это его проблемы. Не надо было менять время. У него, на его стороне должен стоять предохранитель от этого.
либо придется заниматься какими-то преобразованиями до отправки.
FishHookЧасовых поясов определённое количество и они делятся равномерно. Точка отсчёта - нулевой меридиан в Лондоне.
Это смещение времени, привязанное к географическим координатам и времени абсолютному.
FishHookНужно выбрать стабильную точку отсчёта. Миллисекунды в UTC - что может быть стабильнее?
Если ты думаешь, что на этом нельзя потерять солидно денежек, ты ошибаешься.
FishHookЯ не мог ошибиться, потому что это доказывается индуктивно. То есть мы можем доказать, что: 1) малое элементарное расстояние в миллисекундах соответствует правильному ответу; 2) прибавление к малому расстоянию в миллисекундах ещё шага в миллисекундах также соответствует правильному ответу; 3) мы можем индуктивно расширить шаг индукции и доказать для любого расстояния в миллисекундах, что оно соответствует правильному ответу.
Ты ошибся на три часа!
Сместись на миллисекунду назад (возьми такой часовой пояс шириной в миллисекунду) и спроси себя “правильно ли то, что в часовом поясе, лежащем в миллисекунде назад, сейчас столько времени, сколько сейчас и в этом часовом поясе без вычета одной миллисекунды?”. Понимаешь, тут к бабке не ходи, уже всё понятно. Ты просто заморочился в таймзонах, тогда как я их вообще не использовал, взяв время в UTC.