Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/443.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设置/获取值时,如何使datetime字段与时区无关_Javascript_Asp.net Mvc_Asp.net Mvc 3 - Fatal编程技术网

当使用Javascript设置/获取值时,如何使datetime字段与时区无关

当使用Javascript设置/获取值时,如何使datetime字段与时区无关,javascript,asp.net-mvc,asp.net-mvc-3,Javascript,Asp.net Mvc,Asp.net Mvc 3,在我的项目中,有几个datetime类型的字段,比如航班的出发/到达日期和时间,这些字段应该与用户编辑它们时完全相同 我使用ASP.NETMVC3和dojo来构建应用程序。在后端,我可以将给定的值作为UTC时间处理并保存到DB。但当它使用Json传递到前端时,Javascript似乎将其调整为本地时间,页面上的日期/时间选择器显示调整后的值。似乎当我使用新日期(…)时,它会自动调整到本地时间 下面是我在第页上使用的解析函数(因为ASP.NET MVC3的JsonRest返回的日期类似于“/dat

在我的项目中,有几个datetime类型的字段,比如航班的出发/到达日期和时间,这些字段应该与用户编辑它们时完全相同

我使用ASP.NETMVC3和dojo来构建应用程序。在后端,我可以将给定的值作为UTC时间处理并保存到DB。但当它使用Json传递到前端时,Javascript似乎将其调整为本地时间,页面上的日期/时间选择器显示调整后的值。似乎当我使用新日期(…)时,它会自动调整到本地时间

下面是我在第页上使用的解析函数(因为ASP.NET MVC3的JsonRest返回的日期类似于“/date(464371200000)/”)


我如何实施此案例?是否有最佳实践或示例?

将UTC时间的返回值更改为以下值:

return new Date(parseInt(dateStr.substr(6))).toUTCString();
javascript中的所有日期在内部存储为UTC。如果您希望函数返回实际日期对象,并且在小部件中使用了某些方法,如
getFullYear()
,它会将其转换为本地时间。如果要将其保持在UTC,则必须使用UTC方法,例如:

dateObj.getUTCFullYear();          // Year as a 4-Digit Number
dateObj.getUTCMonth();             // Month as a number from 0 - 11
dateObj.getUTCDate();              // Day of the Month as a number from 1 - 31
dateObj.getUTCDay();               // Day of the Week as a number from 0 - 6
dateObj.getUTCHours();             // Hours as a number from 0 - 23
dateObj.getUTCMinutes();           // Minutes as a number from 0 - 59
dateObj.getUTCSeconds();           // Seconds as a number from 0 - 59
dateObj.getUTCMilliseconds();      // Milliseconds as a number from 0 - 999
dateObj.toUTCString();             // The entire Date as a string in UTC

如果您希望设置对象,请使用与上面相同的方法,但更改单词get to set(例如-
dateObj.setUTCFullYear(1984);
)。

但我需要将日期对象传递给小部件。我更改了答案以获得更多信息。我不太确定你到底想做什么,因为你只介绍了解析函数,但在一些小部件上遇到了问题。不管怎样,我希望这会有帮助。谢谢史蒂夫。我试过你的方法,经过一些简单的测试,效果很好。我需要更多的时间来测试,因为这确实是一个很大的修改。
dateObj.getUTCFullYear();          // Year as a 4-Digit Number
dateObj.getUTCMonth();             // Month as a number from 0 - 11
dateObj.getUTCDate();              // Day of the Month as a number from 1 - 31
dateObj.getUTCDay();               // Day of the Week as a number from 0 - 6
dateObj.getUTCHours();             // Hours as a number from 0 - 23
dateObj.getUTCMinutes();           // Minutes as a number from 0 - 59
dateObj.getUTCSeconds();           // Seconds as a number from 0 - 59
dateObj.getUTCMilliseconds();      // Milliseconds as a number from 0 - 999
dateObj.toUTCString();             // The entire Date as a string in UTC