#node.js #angular #datetime
Вопрос:
Пожалуйста, помогите с отображением правильной отметки даты и времени.
Например, Время на моем ноутбуке: 02-Oct-2021 11:14am
(это в Индии)
Время , сохраненное Узлом и отображаемое в угловом 2021-10-02T05:44:09.022Z
формате, т. е. в 06:30 отстает от моего времени. И это выполняется в режиме разработки на локальном хосте, поэтому он должен отображать время моего ноутбука правильно?
Вот код в Node.js при сохранении одного комментария.
const comment = {
comment: remarks,
userName: user.userName,
commentBy: user.employeeName,
commentedOn: new Date()
}
clientDoc.commentsArr.push(comment)
await clientDoc.save();
а вот код в угловом шаблоне.
<div *ngIf="clientDoc" class="container">
<span class="subTitle">Existing Comments:</span>
<table style="width: 100%">
<tr *ngFor="let e of clientDoc?.commentsArr, let i =index">
<span style="font-style: italic; font-weight: 500;">{{i 1}}. {{e.commentBy}} ( {{e.commentedOn}} ) : </span>
<span *ngIf="account.role !== 'Client'">
<a class="link small" (click)="onEditRemarks(e._id, e.comment)">Edit</a>
</span>
<br>
<span style="font-weight: 350;">{{e.comment}}</span>
</tr>
</table>
</div>
А вот метка времени, хранящаяся в MongoDB
2021-10-02T05:44:09.022 00:00
Мне нужно отсортировать это как для режима разработки, так и при развертывании этого кода на VPS, который также находится в Индии.
Ответ №1:
Это происходит потому, что MongoDB всегда хранит метку времени в UTC.
Попробуйте код ниже:
var record = db.data.findOne();
var localNow = new Date( record.date.getTime() - ( record.offset * 60000 ) );
Для получения дополнительной информации вы также можете ознакомиться с официальным документом MongoDB здесь
Комментарии:
1. Спасибо. Я видел документ MongoDB. Но означает ли это, что каждый раз необходимо сохранять смещение и восстанавливать даты для использования как в узле, так и в угле. В узле — в случае, если необходимо выполнить какие-либо вычисления на основе даты в отношении даты, полученной от Angular. И в Angular каждую дату нужно реконструировать, чтобы она отображалась пользователю? Неужели нет другого выхода?