我有这个变量' previousDate'并将其分配到上一个日期。
var previousDate;
当我执行console.log(previousDate)时,我在控制台上获得此值。
Wed Dec 07 2016 10:02:37 GMT-0800 (Pacific Standard Time)
现在,当我json.stringify这个数据时,我得到了以下日期和时间。
2016-12-07T18:02:37.223Z
日期相同,但请注意这里的时间。而不是PST,它向我展示了GMT。我需要在这里进行PST定时。有什么建议吗?
答案 0 :(得分:2)
创建对象时,请创建一个返回日期字符串的方法
样品:
var obj = { d1: (new Date()), d1String: function() { return this.d1.toString(); } }
或者将YourDate.toString()保存在对象的一个属性中。
var objDate = { dateString: YourDate.toString() ;}
或者
var ff = function(YourObject) { var OBJ = {} ;
for(x in YourObject)
{
if (typeof(YourObject[x]) !== "function")
eval("OBJ." + x + " = '" + YourObject[x] + "'");
else
eval("OBJ." + x + " = '" + YourObject[x]() + "'");
}
var strOBJ = JSON.stringify(OBJ);
return strOBJ;
}
我在GitHub上的要点
https://gist.github.com/kiaratto/afb6bb9acd21d0dda37157eb3a92ec2f
答案 1 :(得分:1)
JavaScript日期值不包含时区信息。
当您将某些内容记录到控制台时,浏览器会尽力向您显示相关且有用的信息。对于日期,这通常意味着存储在其中的任何UTC值都显示在您当地的时区中,您必须为“GMT-0800(太平洋标准时间)”。
如果要以UTC显示时间,可以写:
console.log(date.toUTCString())
这是JSON.stringify
正在做的事情;使用UTC传输日期有助于在信息必须跨越各个时区时简化操作。
然而,这种行为似乎并不是你想要的。如果您希望在发送时将字符串设置为local-timezone,则可以写:
console.log(date.toString())
答案 2 :(得分:1)
看起来你可以得到你想要的东西,如果你这样做:
date.toDateString() + ' ' + date.toTimeString()