[英]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.