проблема с изменениями GMT (часовой пояс)? - PullRequest
0 голосов
/ 12 августа 2011

Я создал небольшой скрипт для отображения времени (UTC-+3.5). Проблема заключается в том, что меняет GMT (+4,5, +3,5) в Иране каждые шесть месяцев в году, а изменения Time растягиваются (Daylight Saving)
Как установить часы самостоятельно с изменением GMT в Иране ? что я делаю? (сейчас GMT в Иране +4,5)

ПРИМЕР: мой код-jsfiddle

var int = self.setInterval("clock()", 1000);

function clock() {
    var d = calcTime('+4.5')
    var t = d.toLocaleTimeString();
    document.getElementById("clock").innerHTML = t;
}

function calcTime(offset) {
    d = new Date();
    utc = d.getTime() + (d.getTimezoneOffset() * 60000);
    nd = new Date(utc + (3600000 * offset));

    return nd;
}

С уважением

1 Ответ

0 голосов
/ 12 августа 2011

Пример скрипки

<script type="text/javascript">
var int = self.setInterval("clock()", 1000);

function clock() {
    var d = calcTime('+4.5')
    var t = d.toLocaleTimeString();
    document.getElementById("clock").innerHTML = t;
}

function calcTime(offset) {
    d = new Date();
    ds = new Date(); // new Daylight Savings Time object
    ds.setMonth(9); // Set month to september
    ds.setDate(21); // set day to 21st
    if(d > ds){ // if current date is past the daylight savings date minus one from the offset
        offset = eval(offset - 1);
    }
    utc = d.getTime() + (d.getTimezoneOffset() * 60000);
    nd = new Date(utc + (3600000 * offset));

    return nd;
}
</script>

<b id="clock"></b>

Это работает. Он проверит, прошла ли дата в настоящее время после 21 сентября и будет ли это -4,5 от GMT, иначе 3,5

это не самый чистый код, который я когда-либо писал, я просто изменил ваш. однако вы можете видеть, как это делается сейчас.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...