TypeScript дата-часовой конфликт между клиентом и бэкэндом - PullRequest
0 голосов
/ 20 сентября 2018

В нашем угловом приложении мы выбираем объект Date с календарем primeNG, например 20.09.2018.

A console.log() этой даты возвращает правильное значение Thu Sep 20 2018 00:00:00 GMT+0200 (GMT + 2 - этомой местный часовой пояс).

Эти данные публикуются в нашей базе данных node.js, которая хранит дату в базе данных оракула.Однако бэкэнд получает значение 19.09.2018 22:00, поэтому кажется, что он установлен на часовой пояс GMT.

Как я могу убедиться, что на стороне сервера часовой пояс игнорируется и что 20.09.2018 00:00хранится?

Ответы [ 2 ]

0 голосов
/ 25 сентября 2018

Я столкнулся с той же проблемой вчера после звонка toISOString().Проблема, как вы заметили, в том, что анализатор учитывает смещение часового пояса.Я попытался решить проблему с .toDateString(), но все еще получал ту же проблему.В конце я выбрал грубую силу и сделал следующее:

const dateNum = Date.parse(selectedDate.toString().substring(0, 28));
const date = new Date(dateNum);

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

0 голосов
/ 20 сентября 2018

Вы можете удалить информацию о часовом поясе своего времени, используя [toDateString]

date.toDateString()

И вы можете преобразовать свои данные в свой часовой пояс, когда вы получите их от сервера

new Date("string of date send by server")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...