DateTime自动在JSON对象中转换为GMT

时间:2015-10-06 15:36:01

标签: jquery angularjs datetime

我有像这样的JQuery函数

function (){
           alert($scope.modal.ondutytime);

            var data = {
                        "OnDutyTime": $scope.modal.ondutytime,
                        "Comments": ""
                       };

            alert(JSON.stringify(data));
}

$scope包含我在angularJs视图中设置的所有值。问题是,第一个alert显示了本地ondutytime日期&时间

Tue Oct 06 2015 20:30:44 GMT+0500 (Pakistan Standard Time)

但是当我创建一个JSON对象data然后在stringify之后发出警告时,它会显示UTC日期&时间(5小时差异)

{
    "OnDutyTime": "2015-10-06T15:33:10.903Z"
    "comments":""
}

如何确保不转换为GMT?

编辑: 我也试过这个

new Date('2015-10-06T15:33:10.903Z') 

它显示了我的本地日期&时间,但是我必须提供$scope.modal.ondutytime已经包含我的本地日期&时间。所以当我把上面一行写成

new Date($scope.modal.ondutytime) 

再次显示UTC日期&时间。

1 个答案:

答案 0 :(得分:0)

在处理巴西时区(GMT-3)并尝试在本地存储中保存“新Date()”时,我遇到了同样的问题。我找到的解决方案是更改javascript“ Date()”的原型,以使浏览器的时区成为javascript的默认时区。当然这不是一件好事,但是根据您的需要,它可能会有所帮助。

您可以找到我使用的here代码。

您将看到,这个Stackoverflow的问题为这个问题提供了多个解决方案,其中包括使用“ Moment JS”,这是一个非常流行的处理时间的库。