Я отправляю объект даты как временную метку unix. Я использую getTime() в javascript.
Например
при инициализации в моем файле .js
так как
firstDate = new Date("2019-08-04");
И затем, когда я меняю значение на ввод даты
и firstDate.getTime() возвращает отметку времени без добавления TimezoneOffset.
Но без firstDate = new Date("2019-08-04"); ассигнация,
когда я изменяю значение ввода даты, он добавляет TimezoneOffset.
Поэтому для решения этой проблемы я использую
var timestamp = firstDate.getTime() - 60000 * firstDate.getTimezoneOffset();
перед отправкой метки времени на сервер.
В чем причина этого?
Когда вы устанавливаете firstDate с помощью конструктора даты, предоставляющего значение «2019-08-04», он устанавливает дату в firstDate на 4 августа 2019 года, а время — на ваш местный часовой пояс (т. е. если вы находитесь в Индии, firstDate будет 04.08.2019 05:30:00 вместо 04.08.2019 00:00:00). Когда вы вызываете getTime() без назначения, он добавит текущую дату и время со смещением местного часового пояса.
Я понял как это работает. По ссылке https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date говорит, что конструктор даты Iso 8601 интерпретируется как utc, а не как локальный. Поэтому функция gettime() генерирует временную метку unix без добавления часового пояса. .Так что мне не нужно вычитать часовой пояс.
Но без использования конструктора даты он добавляет часовой пояс. С использованием конструктора даты он не добавляет часовой пояс.