首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >角度2-时刻,MongoDB协调世界时

角度2-时刻,MongoDB协调世界时
EN

Stack Overflow用户
提问于 2018-03-04 09:44:02
回答 1查看 132关注 0票数 0

我只想显示1967年6月29日的日期--但它在我的angular应用程序中显示为1967-06-28 19:00:00.000 --所以它自然会显示为1967年6月28日。

我的HTML表单日期选择器-选择日期: 06/29/1967

表单已提交...

MongoDB显示: 1967-06-28 19:00:00.000

我在TZ的中心,所以这作为UTC的仓库是有意义的。

Mongo数据类型在mongoose模式中定义为"Date“,如下所示:

代码语言:javascript
运行
复制
,dob: {
    type: Date
    ,required: false
    ,default: null
}

为了在浏览器上进行转换,我安装了- angular2-moment -因为它‘广告’了一个函数来做这件事。我没有得到一个错误-但我也没有得到任何显示的变化。

代码语言:javascript
运行
复制
DOB: {{user.dob | date:'mediumDate' }} 
DOB: {{user.dob| amLocal | amDateFormat: 'MMM DD, YYYY'}}

两个显示

代码语言:javascript
运行
复制
Jun 28, 1967

具有讽刺意味的是-编辑表单的日期字段显示为6/29/1967...

我做错了什么?

EN

回答 1

Stack Overflow用户

发布于 2018-03-04 10:03:51

如果您在时间的末尾添加一个'Z‘,这将确保它被解析为UTC,如下所示:

代码语言:javascript
运行
复制
1967-06-28 19:00:00.000Z

问题是,如果您将来自数据库的输入视为UTC,您最终会比06-29晚9个小时,而不是将日期/时间向前移动。所以看起来你的数据库时间戳实际上比UTC晚了几个小时。

我在东部标准时间,需要这样:

代码语言:javascript
运行
复制
new Date(Date.parse('1967-06-28 19:00:00.000 GMT-0900'))

...to获取以下内容:

代码语言:javascript
运行
复制
Thu Jun 29 1967 00:00:00 GMT-0400 (EDT)

顺便说一句,如果您希望能够将除固定的UTC偏移量以外的任何时间转换为客户端系统的本地时间,则需要:https://momentjs.com/timezone/

基本moment.js提供的本地化不包括时区转换。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49091122

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档