关于php:如何从Javascript获取DST的时区偏移(不是客户端)?

How to get timezone offset (not client) with DST from Javascript?

本问题已经有最佳答案,请猛点这里访问。

我的网站有3个时钟(纽约,东京,伦敦)。

我硬编码偏移量(-5,9,0):

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

但是,对于纽约,由于"夏令时",时区将会改变

我可以使用函数来获取时区偏移量吗? 像这样:

1
get_timezone_offset("NewYork");

要么:

1
is_dst();

谢谢。

更新:

最后,我在搜索引擎中使用php找到答案。
如果您使用的是php => 5.3,则应向下滚动以获得最佳答案。

我真的找不到Javascript的方法。

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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?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;
    }
?>


如果你想用PHP计算它最简单的方法是将默认时区设置为UTC并从那里计算,但它可以在PHP 5.2+中使用

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

它将以秒为单位返回偏移量。

即使DST也会返回正确的偏移量。


在这样的JavaScript中

1
javascript:alert(new Date('2013/06/24').getTimezoneOffset())

返回UTC的时区偏移量