Итак, я стараюсь использовать время, которое является широко используемым приложением, и отображать его в часовом поясе пользователя. Вот что я сработал и работает. Однако я уверен, что есть лучший способ сделать это. Начальный часовой пояс всегда будет центральным. Central = 5. Меня интересуют только часовые пояса США, но если есть простой способ реализовать его во всем мире, я тоже с этим справляюсь. Текстовый ярлык, с которым я работаю, будет отображаться как 4:00 PM, поэтому существует так много подстроки.Дата трансляции Javascript по часовой пояс
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);
}
});
}
Я думаю, вам стоит взглянуть на библиотеку времени timezone вместо того, чтобы пытаться реализовать это. Это избавит вас от многих головных болей. – Tuan
Их так много. Какой из них вы бы порекомендовали? –
Это тот, о котором я говорил: http://momentjs.com/ – Tuan