dongqianchi0512
2013-06-24 08:50
浏览 71
已采纳

如何从Javascript获取DST的时区偏移量(不是客户端)? [重复]

This question already has an answer here:

My website have 3 clocks (NYC, Tokyo, London).

And I hard-code the offset (-5, 9, 0):

$('#nyc-clock').clock({offset: '-5', type: 'analog'});
$('#tokyo-clock').clock({offset: '9',  type: 'analog'});
$('#london-clock').clock({offset: '0', type: 'analog'});

However, for New York, the timezone will be changed due to "Daylight saving time"

Can I have a function to get timezone offset? Like this:

get_timezone_offset("NewYork");

or:

is_dst();

Thank you.

Update:

Finally, I found the answer using php from the search engine. If you are using php => 5.3, you should scrolling down for the best answer.

And I really cannot find Javascript's method.

http://blog.mynzsky.com/?p=243

<?php
    function is_dst($where) {
        $timezone=date('e');
        date_default_timezone_set($where);
        $dst=date("I");
        date_default_timezone_set($timezone);
        return $dst;
    }   

    if (is_dst('America/New_York')) {
        $nyc_timezone = -4;
    } else {
        $nyc_timezone = -5;
    }
?>
</div>
  • 写回答
  • 好问题 提建议
  • 关注问题
  • 收藏
  • 邀请回答

2条回答 默认 最新

  • drzfz9995 2013-06-24 09:12
    已采纳

    If you like to calculate it in PHP the easiest is to set the default time zone to UTC and calculate from there, but it will work with PHP 5.2+

    date_default_timezone_set('UTC');
    echo timezone_offset_get(new DateTimeZone('Asia/Tokyo'),new DateTime('now'));
    

    It will return the offset in seconds.

    This will return correct offset even for DST.

    评论
    解决 无用
    打赏 举报
  • 查看更多回答(1条)

相关推荐 更多相似问题