Я пытаюсь вставить время начала и окончания, например, логику времени входа и выхода в Mongodb с узла js.Часовой пояс моей локальной системы - IST.Смещение +5: 30 для клиента и сервера.
Итак, следуйте этому примеру.
entryDate: 15-10-2018,
start: 15-10-2018 01:00:00,
end: 15-10-2018 05:00:00
Теперь, поскольку я нахожусь в одном часовом поясе на клиенте и сервере, он не изменитсямое значение даты и создать новый объект.
Затем я сохраняю эти данные в MongoDB.Как вы знаете, mongo db преобразует дату в UTC, а затем сохраняет ее.Так что в моей БД это будет выглядеть так:
entryDate: ISODate("2018-10-15T00:00:00Z"),
start: ISODate("2018-10-14T19:30:26Z"),
end: ISODate("2018-10-14T23:30:26Z")
Так что теперь, если я хочу найти запрос, который должен дать мне записи для дат и времени между 15 и 16, скажем, тогда я не получу никакихdata.
Теперь рассмотрим этот случай.Я перенес приложение на сервер.Теперь часовой пояс серверов находится в UTC.Таким образом, каждая дата, которую я передаю, будет конвертироваться непосредственно в UTC, поэтому он будет вставлять те же данные, что и раньше.
Теперь разница здесь в том, что когда я хочу найти диапазон дат в часовом поясе IST, тогда он даст мне точную дату дляВыполните поиск (15-10-2018 00:00:00) по (16-10-2018 00:00:00).
Где на сервере он преобразует эту дату в UTC и может дать мне один деньменьше или может быть больше времени, как (14-10-2018 18:30:00) до (15-10-2018 18:30:00).Так что с самого начала мой запрос неверен.
Так как решить эту проблему?Спасибо.