Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript JSON.Stringify如何(或者更恰当地说:为什么)更改Date()值?_Javascript_Json_Datetime_Browser - Fatal编程技术网

Javascript JSON.Stringify如何(或者更恰当地说:为什么)更改Date()值?

Javascript JSON.Stringify如何(或者更恰当地说:为什么)更改Date()值?,javascript,json,datetime,browser,Javascript,Json,Datetime,Browser,请参见此处的问题示例: 请注意,第二个新日期()比第一个新日期()晚1小时,即使它们是同时启动的 这让我在最近的一个项目中不再感到困惑,我只想知道为什么会发生这种情况,这是否是浏览器在通过JSON字符串化时处理日期的错误,或者这是否“应该”发生,我只是还没有意识到好处 感谢您的帮助 亲切问候,, 马克我敢打赌这是意料之中的行为。考虑万维网是真正的“世界范围”,你可能有一个时间或日期输入一个表单。如果您从Javascript生成此值,大多数情况下您不需要相对于用户浏览器的本地时间。当我去听你的小提

请参见此处的问题示例:

请注意,第二个新日期()比第一个新日期()晚1小时,即使它们是同时启动的

这让我在最近的一个项目中不再感到困惑,我只想知道为什么会发生这种情况,这是否是浏览器在通过JSON字符串化时处理日期的错误,或者这是否“应该”发生,我只是还没有意识到好处

感谢您的帮助

亲切问候,,
马克

我敢打赌这是意料之中的行为。考虑万维网是真正的“世界范围”,你可能有一个时间或日期输入一个表单。如果您从Javascript生成此值,大多数情况下您不需要相对于用户浏览器的本地时间。当我去听你的小提琴时,我比时间晚了4个小时


在服务器端,您可能希望以尽可能中性的方式区分此时间输入。GMT是一个非常方便的标准。请记住,世界上某个地方可能是午夜,但只有一次是格林威治标准时间的午夜。

对不起,对于Date()值如何变化以及在哪里变化,我仍然有点困惑

alert(new Date().toUTCString() + '\n' + JSON.stringify({ 'date': new Date() }));
如果我调用“new Date()”,浏览器软件会占用我电脑的时间,对吗

如果我从JSON.Stringify()方法中调用“new Date()”,那么会发生什么?new Date()的值是从哪里得到的,我想它仍然是从我的机器上得到的,它应该与第一个“new Date()”的值相同

如果不是这样,从JSON.Stringify内部调用“new Date()”会以某种方式拉入一个不同的时区,那么肯定可以通过将“new Date()”值存储在一个变量中,然后将该变量放置在传递给JSON.Stringify的对象文本中来解决这个问题

e、 g.(抱歉,我只能发布1个链接,所以必须将我的JSFIDLE代码放在这里)

var storeDate=新日期()
警报(storeDate+'\n'+JSON.stringify({'date':storeDate})); ​

但这不起作用,所以JSON.Stringify似乎确实改变了变量

对不起,如果我误解了人们的建议。但这听起来像是说这一切都取决于时区——这很好——但我不明白为什么执行“new Date()”并将值存储在变量中,然后通过JSON.Stringify将其设置值更改为不同的值


更新:因此,即使我在变量中存储new Date(),它似乎也不是存储在变量中的一个设置值。显示如果我手动键入日期时间,那么JSON.Stringify什么也不做。

它们在这里是同一时间,请记住您与GMT/Zulu的偏移量,您所在的位置离那还有一个小时吗?