所以我想花時間,應用程序範圍內,並顯示在用戶的時區。這是我已經研究出來的,它正在工作。不過,我相信有更好的方法來做到這一點。起始時區將始終爲中央。中央= 5。我只關心美國的時區,但如果有一個簡單的方法來實現它在世界範圍內,我也是這樣。我正在使用的文本標籤將顯示爲下午4:00,這就是爲什麼有這麼多的子串。Javascript的轉換時區date
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);
}
});
}
我想你應該看看時區時區庫,而不是試圖實現這一點。它會爲你節省很多頭痛。 – Tuan 2014-10-02 17:13:17
那裏有那麼多。你會推薦哪一個? – 2014-10-02 17:21:46
這是我正在談論的那個:http://momentjs.com/ – Tuan 2014-10-02 17:33:28