繁体   English   中英

将时刻 UTC 转换为本地日期时间

[英]Converting moment UTC to Local date time

我将来自 .net 的 UTC .NET/JSON 日期放在客户端。 当我运行以下命令时:

moment(value.Planet.when).utc()

从网络服务返回的日期:

"/Date(1469271646000)/"

我在 _d 参数中得到一个日期,显示当前准确的 UTC 日期,右侧是 GMT+0300。

我想将这个时间转换为用户机器上的本地时间,无论我做什么,我总是能把时间退回 3 小时。

我这样做:

moment(value.Planet.when).local().format('YYYY-MM-DD HH:mm:ss')

我得到与 UTC 相同的日期时间。 我不明白如何让 momentjs 显示相对于本地时间的 UTC 时间。 我检查了 momentjs 对象确实是 UTC。

我想,如果我通过 moment.utc() 函数传递我从网络服务(最初来自数据库)获得的 UTC 日期,我可以只运行 local() 函数,我将获得相对于的准确小时我的区域,但它没有用。

您可以使用 moment(date).format('YYYY-MM-DDTHH:mm:ss');

例如:- 如果您约会“/Date(1469271646000)/”

ip-> moment(1469271646000).format('YYYY-MM-DDTHH:mm:ss');

op->“2016-07-23T16:30:46”

不要使用_d属性。 它仅供内部使用。 请参阅此答案用户指南Maggie 关于该主题的博客文章

至于您如何转换为当地时间的问题,您实际上根本不需要转换。 您已经在本地模式下解析输入值,因此您可以直接使用它:

var m = moment("/Date(1469271646000)/");  // gives you a moment object in local mode.
var s = m.format();   // lets you format it as a string.  Pass parameters if you like.
var d = m.toDate();   // gives you a Date object if you really need one

尽量避免使用Date对象,除非您正在使用的某些其他控件或库需要它们。 大多数操作都可以严格地在moment对象上完成。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM