gpt4 book ai didi

javascript - Angular $http.post 将日期更改为 UTC 日期

转载 作者:行者123 更新时间:2023-12-03 01:37:06 26 4
gpt4 key购买 nike

我试图将一些数据发布到我的 REST api,其中包含日期。现在,当我调试时,我的日期参数是一个 JS Date 对象,其时区日期正确:Tue Apr 04 2017 00:00:00 GMT+0530

在它离开我的代码后,我在网络选项卡中看到相同的内容,它被转换为 UTC 日期:"2017-04-03T18:30:00.000Z"

我搜索了解决方案,根据该解决方案,我需要在我的index.html中包含 Angular 区域设置文件,我这样做了:

<script type="text/javascript" src="resources/js/angular/angular-locale_en-in.js"></script>

但这没有帮助。我见过诸如添加日期格式来过滤之类的解决方案,但我想要一个全局解决方案。有什么帮助吗?谢谢:)

最佳答案

处理日期、时间和时区也让我感到困惑。也许这个答案能让您了解如何处理它们。

在 Chrome 的开发者控制台中尝试以下代码,看看相同的日期如何以不同的格式呈现:

var date = new Date();
date.toISOString(); // "2017-04-29T09:54:28.714Z"
date.toGMTString(); //"Sat, 29 Apr 2017 09:54:28 GMT"
date.toLocalString(); //"4/29/2017, 3:24:28 PM"

您在客户端创建的任何日期始终记录零时区偏移的日期,即 UTC+/-00:00 Z。为简单起见,您可能认为 UTC 和 GMT 相同。当涉及到显示目的时,会根据浏览器的时区显示相同的日期。如果您执行 console.log (date) ,它将输出 Sat Apr 29 2017 15:24:28 GMT+0530 (IST) 但这并不意味着日期的内部记录按照浏览器的时区进行。它只是根据浏览器的时区显示在屏幕/控制台上。

不要将日期表示视为从一个时区转换为另一个时区,而是将它们视为同一日期的不同表示。在您的浏览器中,它表示为 GMT+0530 偏移量,当它发送到服务器时,它是零时区偏移量的相同日期。

根据您的评论,如果您选择 GMT+0530 时区的 4 月 4 日上午 00:00,则内部时间将为 GMT+0 时区的 4 月 3 日晚上 18:30,即零时区偏移。让它按原样发送到服务器。当您需要使用此日期时,它将作为 4 月 3 日从服务器返回,并将根据浏览器的时区偏移量显示在浏览器中。不涉及转换,它是具有不同表示形式的一个日期。

我曾经问过related question ,这可能会增加更多的说明。

总的来说,这个答案仍然与 @geminiousgoel 和 @charlietfl 答案相同。

关于javascript - Angular $http.post 将日期更改为 UTC 日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43496920/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com