我在客户端放置了来自.net的UTC .NET / JSON日期。当我运行以下命令时:
moment(value.Planet.when).utc()
来自webservice的返回日期:
"/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()函数传递我从webservice(最初来自数据库)获得的UTC日期,我可以运行local()函数,我会得到准确的小时相对于我的地区,但它没有用。
答案 0 :(得分:1)
您可以使用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”
答案 1 :(得分:0)
请勿使用_d
属性。它仅供内部使用。请参阅this answer,the user guide或Maggie's blog post on the subject。
至于你如何转换为本地时间的问题,你实际上根本不需要转换。您已经在本地模式下解析输入值,因此您可以直接使用它:
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
个对象上严格执行。