HTML5 JavaScript Gettime () из <input type = "date" />, странно работает - PullRequest
0 голосов
/ 08 апреля 2019

Я публикую объект даты как метку времени Unix. Я использую getTime () в javascript.Например,

при инициализации в моем файле .js

как

firstDate = new Date("2019-08-04");

А затем, когда я меняю значение по дате, введите

и firstDate.getTime() возвращает метку времени без добавления TimezoneOffset.

Но без firstDate = new Date ("2019-08-04");assingnation,

, когда я изменяю значение на ввод даты, добавляется TimezoneOffset.

Так что для решения этой проблемы я использую

var timestamp = firstDate.getTime() - 60000 * firstDate.getTimezoneOffset();

перед отправкой метки времени на сервер.

В чем причина этого?

Ответы [ 2 ]

0 голосов
/ 14 апреля 2019

Я понял, как это работает. По ссылке https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date говорится, что конструктор даты Iso 8601 интерпретируется как utc, а не как локальный. Поэтому функция gettime () генерирует метку времени unix без добавления timezone.Even, если я удалил значение даты ввода,был назначен в javascript во время инициализации файла javascript и повторного выбора нового значения даты, он снова использует utc.Так мне не нужен абстрактный абстрактный часовой пояс.

0 голосов
/ 08 апреля 2019

Когда вы устанавливаете firstDate с помощью конструктора даты, предоставляющего значение «2019-08-04», он устанавливает дату в firstDate на 4 августа 2019 года и время в вашем местном часовом поясе (то есть, если вы находитесь в Индии,Первой датой будет воскресенье 04 августа 2019 05:30:00 вместо вс 4 августа 2019 00:00:00).Когда вы вызываете getTime () без присвоения, он добавляет текущую дату и время со смещением местного часового пояса.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...