【发布时间】:2017-02-19 17:59:12
【问题描述】:
我最近为基于云的系统实现了一个基于 webview 的移动应用程序,但遇到了一个令人沮丧的问题。
我们将日期存储在数据库中,格式如下:
2016-10-11T11:09:00
在桌面应用程序中正确显示为 2016/10/11 11:09:00。
但是,在移动应用程序中(我们使用 phonegap,因此它基于 HTML + JS),当我通过 PHP 调用从数据库中获取此日期字符串并使用 'new Date("2016-10 -11T11:09:00")',它会显示时区转换,例如,如果我在 GMT + 2 时,它将是 2016/10/11 13:09:00 .
如何防止这种情况发生?
每当我在视图上显示日期时,我都会使用 date.toString("yyyy/MM/dd HH:mm:ss") 格式。
此外,在跨多个平台存储和显示日期时间方面,我愿意接受任何建议。我发现这种 yyyy-mm-ddThh:mm:ss 格式非常好并且被广泛使用,直到我遇到了这个 javascript 问题。
(据你所知,我不是 javascript 或 HTML 专家)
LE:我不想将日期转换为 UTC 字符串,我希望实际的 Date 对象与数据库值保持一致,因为我通过 AngularJS 将它连接到 HTML 日期时间选择器。
【问题讨论】:
-
-
我刚刚在 Chrome 开发者工具中尝试了 new Date("2016-10-11T11:09:00Z") 和 new Date("2016-10-11T11:09:00") ,他们给出了同样的事情。
-
这正是我所说的...... Chrum 没有区别,但 Firefox 和 Edge 确实有区别 - 除非您的本地时间是 UTC
-
哦,对了,我在你编辑评论之前就开始回复了。 “Z”在移动应用 web 视图中也无济于事
-
如果您的应用程序在全球范围内使用,您可能希望将 UTC 存储在您的数据库中,并以用户的本地时区呈现时间,不是吗?
标签: javascript html cordova date datetime