Member 12954126 Ответов: 1

Почему я получаю 1 день назад дату от javascript в течение 12 часов утра до 8 часов утра, когда я заполняю форму?


Я являюсь разработчиком программного обеспечения в asp.net. Мы работаем над живым приложением, которое работает для обследования сайта с помощью мобильного устройства android. При этом, когда пользователь заполняет форму, он автоматически получает системное время в одном текстовом поле с помощью javascript с помощью метода getDate (). Но проблема в том-
когда пользователь заполняет форму с 12 до 8 утра, то дата будет показывать предыдущую дату, как я заполняю форму 28/4/17, а затем она будет отображаться 27/4/17. Около 35 тысяч человек работают над этим приложением, но проблема возникает только у одного пользователя.

var d = new Date();
        var curr_date = d.getDate();


Что я уже пробовал:

я понятия не имею, что делать в этом сложном меттере?

Jochen Arndt

Вы должны объяснить, как обрабатываются даты (я понимаю, что извлекается местное время пользователя, но вы не объяснили, что делается с этим значением).

Если вы сравните такое местное время со временем в других местах, вы получите разницу, которая может привести к другому Дню.

Для сравнения времени и хранения дат на серверах всегда следует использовать UTC. При последующем отображении таких дат они могут быть преобразованы обратно в местное время.

Pawan Sharma Software Developer

Прежде всего вы должны были бы описать подробнее что вы делаете по датам

var d = new Date();var curr_date = d.getDate();


В соответствии с моим пониманием этого кода и вашим объяснением, что пользователь может находиться в другом часовом поясе или как вы используете даты для сохранения. Поэтому для этого вам нужно установить часовой пояс по умолчанию на стороне клиента и отправить даты на сервер для сохранения с часовым поясом. Для этого вы можете использовать moment.js за это
https://momentjs.com/

Таким образом, вы можете установить часовой пояс по умолчанию, а также использовать другие функции.

для получения более подробной информации, пожалуйста, укажите код, в котором вы используете эти даты.

1 Ответов

Рейтинг:
1

Pawan Sharma Software Developer

В большинстве случаев это может быть пользовательская системная дата, которая не обновляется до текущей даты, и если вы получаете одну и ту же дату каждый раз, то это может быть батарея компьютера пользователя с истекшим сроком службы.