gpt4 book ai didi

javascript - 如何在 JavaScript 的客户端代码中获取其他国家/地区的当前日期时间?

转载 作者:行者123 更新时间:2023-12-03 04:02:19 25 4
gpt4 key购买 nike

我想获取迪拜在印度的当前日期时间,让我们看看下面的代码你可以得到更好的想法,

var compareDate = r.get('updatedate');
var diff = new Date() - new Date(compareDate);

diff /= 60000; // diff converted in minute

if (diff >= 60) {
return true;
} else {
return false;
}

这里,varcompareDate包含一个日期时间值。这是来自服务器端的,并且该日期在迪拜时区的服务器端上更新。

new Date() 获取应用程序运行的当前日期(例如,我在印度运行该应用程序)。

这将在印度或迪拜以外的其他国家/地区产生错误的结果。

所以我想区分数据库值 (compareDate) 和迪拜的当前日期时间。

如何实现这一目标?

最佳答案

Javascript 无法访问除本地和 UTC 之外的时区。有多种解决方法。

  1. 您可以检查是否可以在服务器上将每个日期转换为 UTC,将其以 UTC 格式发送到客户端,然后将其从 UTC 转换为本地日期。但如果日期要显示在迪拜时区,这是不可行的。

  2. 向客户端获取当前服务器时间的最简单方法是将其从服务器传输到客户端;或者在服务器端计算差异并将其发送到客户端。

  3. 如果您需要即时更新,这意味着时间传输不可行,那么下一个最佳方法是了解两个时区之间的当前差异。

    这需要以下内容:

    • 一旦服务器时区与 UTC 之间存在差异,您就必须发送给客户端,例如180 分钟。
    • 您可以使用 new Date().getTimezoneOffset() 在客户端计算客户端时区与 UTC 之间的差异,例如270.
    • 然后您可以将两者相减以获得客户端和服务器之间的差异。
    • 现在您可以在客户端进行计算。

    请注意,当服务器在夏令时更改期间切换时区偏移时,此行为会中断。对于您的情况来说应该不是问题,因为迪拜没有夏令时,但在一般情况下。

  4. 如果您确实需要客户端具有完整的时区可用性,请查看 moment.tz 。您必须了解如何让服务器了解 moment.tz 时区,反之亦然。就我而言,我完全放弃了 moment.tz 的内置时区,在服务器端将所有服务器时区转换为 moment.tz 格式,并将它们作为 JSON 传输给客户。

关于javascript - 如何在 JavaScript 的客户端代码中获取其他国家/地区的当前日期时间?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44677169/

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