gpt4 book ai didi

Javascript 在时区上转换日期

转载 作者:行者123 更新时间:2023-12-03 11:43:20 26 4
gpt4 key购买 nike

因此,我尝试获取应用程序范围内的时间并将其显示在用户的时区中。这是我所做的工作并且正在发挥作用。但我确信有更好的方法来做到这一点。起始时区始终为中部时区。 Central = 5。我只关心美国时区,但如果有一种简单的方法可以在全局范围内实现它,我也同意。我正在使用的文本标签将显示为下午 4:00,这就是为什么有如此多的子字符串。

function timeZones() {
var timezone = new Date().getTimezoneOffset();
timezone = timezone / 60;
//STARTING TIMEZONE WILL ALWAYS BE CENTRAL
var difference = 5 - timezone;
$(".time-zone").each(function () {
var a = $(this).text();
var hour = a.substring(0, a.indexOf(":") - 1);
hour = parseInt(a);
var yourTime;
//East Coast
if (difference == 1) {
hour = hour + difference;
if (hour == 12) {
yourTime = hour + a.substring(a.indexOf(":"), a.indexOf("A") - 1) + "PM";
}
else if (hour > 12) {
hour = hour - 12;
yourTime = hour + a.substring(a.indexOf(":"), a.indexOf("A") - 1) + "PM";
}
else {
yourTime = hour + a.substring(a.indexOf(":"));
}
$(this).text(yourTime);
}
//Mountain
if (difference == -1) {
hour = hour + difference;
if (hour == 0) {
hour = 12;
yourTime = hour + a.substring(a.indexOf(":"));
}
else if (hour < 0) {
hour = 12 + hour;
yourTime = hour + a.substring(a.indexOf(":"), a.indexOf("P") - 1) + "AM";
}
else {
yourTime = hour + a.substring(a.indexOf(":"));
}
$(this).text(yourTime);
}
//West Coast
if (difference == -2) {
hour = hour + difference;
if (hour == 0) {
hour = 12;
yourTime = hour + a.substring(a.indexOf(":"));
}
else if (hour < 0) {
hour = 12 + hour;
yourTime = hour + a.substring(a.indexOf(":"), a.indexOf("P") - 1) + "AM";
}
else {
yourTime = hour + a.substring(a.indexOf(":"));
}
$(this).text(yourTime);
}
//Alaska
if (difference == -3) {
hour = hour + difference;
if (hour == 0) {
hour = 12;
yourTime = hour + a.substring(a.indexOf(":"));
}
else if (hour < 0) {
hour = 12 + hour;
yourTime = hour + a.substring(a.indexOf(":"), a.indexOf("P") - 1) + "AM";
}
else {
yourTime = hour + a.substring(a.indexOf(":"));
}
$(this).text(yourTime);
}
});
}

最佳答案

你说:

The starting timezone will always be Central. Central = 5.

这是不正确的。时区和时区偏移量不同是一回事。美国中部时区在冬季使用 UTC-6 偏移量,在夏季使用 UTC-5 偏移量(当 daylight saving time 时)。已生效。您不能对其中任何一个进行硬编码。另请参阅 the timezone tag wiki 中的“时区!= 偏移” .

如果您需要在 JavaScript 中使用非本地时区,则需要一个库,例如我列出的 here 。例如,以下是如何使用 moment-timezone 来实现此目的- 这是 moment.js 的附加组件图书馆。

moment.tz('2014-10-02 01:23:00','America/Chicago').local().format('YYYY-MM-DD h:mm a')

在上面的示例中,解析了芝加哥的本地日期/时间(美国中部时间)。然后将其转换为用户浏览器运行时所在的时区(使用 local 函数)。然后按照指定的格式格式化为字符串。

关于Javascript 在时区上转换日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26165894/

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