Преобразование строки ISO-8601 в локальную дату в машинописном тексте / JavaScript - PullRequest
0 голосов
/ 18 января 2019

Я занимаюсь разработкой на Angular 6. Я сохраняю значения формы как json в базе данных при сохранении новой записи. Если конечный пользователь хочет показать существующую запись, я заполняю компоненты формы из данных json. Но у меня возникли проблемы с датой приведения ценности . Я не смог правильно произнести мою местную дату. Я попробовал с моментом, но не сработало:

console.log("string Value",stringValue);
let date = moment(stringValue,"yyyy-mm-ddThh:mm:ss.fffZ");                             
console.log("date",date.format('DD/MM/YYY HH:mm:ss'));

строка Вывод значения: 2019-01-17T21: 00: 00.000Z

фактический вывод на консоль: дата 18/01/2019 01: 00: 00

но ожидается вывод на консоль: дата 18/01/2019 00: 00: 00

Я пытался "ГГГГ-ММ-ДД Чт: мм: ss.fffZ" , но тоже не сработало.

ДОПОЛНИТЕЛЬНАЯ ИНФОРМАЦИЯ

сохранение данных:

process.data = JSON.stringify(this.form.getRawValue());
save(process);

HTML (primeng):

<p-calendar formControlName="startDate" dateFormat="dd.mm.yy"></p-calendar>

Ответы [ 2 ]

0 голосов
/ 18 января 2019

Библиотека моментов часовых поясов была создана для "анализа и отображения дат в любом часовом поясе".

Чтобы построить объект даты и времени в определенном часовом поясе, используйте:

let now = moment.tz('Europe/Istanbul');

Чтобы просмотреть значение UTC, используйте

now.toISOString()

Для просмотра значения местного часового пояса используйте:

now.format('YYYY-MM-DD HH:mm:ss.SSS');
0 голосов
/ 18 января 2019

Вы можете проанализировать ваш '2019-01-17T21:00:00.000Z' вход, используя moment.utc(), так как он представляет время в UTC

По умолчанию, момент анализируется и отображается по местному времени.

Если вы хотите проанализировать или отобразить момент в UTC, вы можете использовать moment.utc() вместо moment().

, а затем преобразовать его в местный часовой пояс, используя local().

Вот живой пример:

const stringValue = '2019-01-17T21:00:00.000Z';
let date = moment.utc(stringValue).local();
console.log("date", date.format('DD/MM/YYYY HH:mm:ss'));
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.23.0/moment.min.js"></script>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...