我收到来自服务的响应,当服务返回时,它会返回创建的服务器 GMT 日期。当我想显示本地日期例如:5-22-2016
我想更改本地计算机的时间时,就会出现问题。
我的回复看起来像这样:
createdDate: "2016-04-22 16:48 PM GMT"
description: "File Upload Success"
fileGuid:"62e7250c-d5ed-41e2-b5b2-4600094d9a7c"
fileSize:"191429"
我的数组中有 90 个不同的对象。
我正在尝试使用 _each
来迭代我的所有键值对:
_.each(data, function(value, key) {
console.log(key, value);
var strDateTime = value.createdDate;
var myDate = new Date(strDateTime);
data[key].createdDate = (myDate.toLocaleString()).split(',')[0];
console.log("data", data)
但它适用于某些创建日期,而其他日期则返回无效的任何建议
最佳答案
根据ECMA-262 5.1 15.9.1.15 Date Time String Format,您的某些数据似乎格式不正确。
ECMAScript defines a string interchange format for date-times based upon a simplification of the ISO 8601 Extended Format. The format is as follows: YYYY-MM-DDTHH:mm:ss.sssZ.
所以更好的解决方案是使用 moment.js .
使用 moment.js,您可以将代码更新为,
moment('2016-5-5').toLocaleString() //'Tue May 05 2015 00:00:00 GMT+0800'
此外,仅出于显示目的,有一个 Angular Directive(指令)版本 angular-moment.
希望这会有所帮助。 :)
<小时/>感谢 @RobG 的通知,我刚刚用 ECMA-262 替换了 MDN。
对于moment("2016-04-22 16:48 PM GMT")
,您可以从下图中看到,
关于javascript - new date() 从服务器 GMT 发送到本地计算机的 AngularJS 时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37041642/