Node.js 从Angular 6表单将日期保存到Mongoose会提前一天返回数据
我使用Angular 6保存一些表单数据,特别是一个日期。表单提交的日期为(日期:“2018-07-02T00:00:00.000Z”),这就是get保存到mongoose中的日期。然后,当我检索页面上显示的所有事件时,插入的日期显示为前一天。。。例如2018年1月7日 这是我的电话Node.js 从Angular 6表单将日期保存到Mongoose会提前一天返回数据,node.js,angular,mongoose,Node.js,Angular,Mongoose,我使用Angular 6保存一些表单数据,特别是一个日期。表单提交的日期为(日期:“2018-07-02T00:00:00.000Z”),这就是get保存到mongoose中的日期。然后,当我检索页面上显示的所有事件时,插入的日期显示为前一天。。。例如2018年1月7日 这是我的电话 ngOnInit() { this._eventService .getEvents() .subscribe( (response) => (this.events = response),
ngOnInit() {
this._eventService
.getEvents()
.subscribe(
(response) => (this.events = response),
(error) => console.log(error)
);
}
还有我在页面上的插值调用
{{event.date}date:'longDate'}
看起来数据是以正确的日期从表单中保存的,然后在mLab中,我能够验证正确的日期,并且只有在显示日期时,它才比显示日期早一天显示日期时,它使用客户端的时区信息。您正在将日期作为UTC保存到数据库中,但当您想显示它时,它会将日期转换为当前客户端的时区。 打开浏览器控制台并键入
new Date("2018-07-02T00:00:00.000Z")
如果您的时区不是UTC,您将看到不同的时间,只需查看返回的未格式化日期,它是正确的日期。为什么日期管道操作员要把日期往后拖一天。谢谢。我现在正在看一篇关于这方面的文章。(). 奇怪的是,我用电脑保存信息,用电脑检索信息。它们不应该是一样的吗?而且。。。这将是网站的一个问题。我应该做些什么来纠正这个问题?我有点迷路了。非常感谢,您应该以某种方式将时区信息发送到服务器。您可以向服务器发送时间戳,而不是日期字符串
新日期(“2018-07-02T00:00:00.000Z”)。getTime()