node.js - Javascript (MEAN Stack) - 开发模式 - 为什么 Node.js 存储的时间戳与我的笔记本电脑的时间不同
问题描述
请帮助显示正确的日期时间戳。
例如,我的笔记本电脑上的时间02-Oct-2021 11:14am
:(这是在印度)
时间由节点存储并显示在 Angular 中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();
这是Angular模板中的代码。
<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 上部署此代码时(也在印度)对此进行排序。
解决方案
发生这种情况是因为 MongoDB 始终将时间戳存储在 UTC 中。
试试下面的代码:
var record = db.data.findOne();
var localNow = new Date( record.date.getTime() - ( record.offset * 60000 ) );
如需更多参考,您还可以在此处查看 MongoDB 官方文档
推荐阅读
- postgresql - 如何在 Docker 容器构建期间设置 Postgres 管理员密码
- scope - Lodash - 在 _.forEach 中使用 _.update
- c# - ASP.NET SQL 消除重复 ID
- r - 将两个 data.frames 合并为两列
- javascript - 每个控制器中的事件监听器
- java - 无法连接到android上的本地socketIO nodejs服务器
- python - GtkFileChooserNative 和 IFileDialog 和额外的小部件
- python - 如果只输入了我列表中的部分单词,我的代码会检查它是否为真并且部分单词是否在列表中
- java - 从数据库崩溃中检索数据
- swi-prolog - 如何在 SWI-Prolog 的设置字符串中设置换行符?