Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/417.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/kotlin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何使用Javascript中的DST获取时区偏移(而不是客户端)?_Php_Javascript_Time_Dst - Fatal编程技术网

Php 如何使用Javascript中的DST获取时区偏移(而不是客户端)?

Php 如何使用Javascript中的DST获取时区偏移(而不是客户端)?,php,javascript,time,dst,Php,Javascript,Time,Dst,我的网站有3个时钟(纽约、东京、伦敦) 我硬编码偏移量(-5,9,0): 但是,对于纽约,时区将因“夏令时”而改变 我可以有一个函数来获取时区偏移吗?像这样: get_timezone_offset("NewYork"); 或: 多谢各位 更新: 最后,我使用搜索引擎中的php找到了答案。 如果您使用的是php=>5.3,那么应该向下滚动以获得最佳答案 我真的找不到Javascript的方法 在javascript中,如下所示 javascript:alert(new Date('2013/

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

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

但是,对于纽约,时区将因“夏令时”而改变

我可以有一个函数来获取时区偏移吗?像这样:

get_timezone_offset("NewYork");
或:

多谢各位

更新:

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

我真的找不到Javascript的方法


在javascript中,如下所示

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

返回UTC的时区偏移量

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

date_default_timezone_set('UTC');
echo timezone_offset_get(new DateTimeZone('Asia/Tokyo'),new DateTime('now'));
它将在几秒钟内返回偏移量


这将返回正确的偏移量,即使是DST。

谢谢您的回答。但是,对于Chrome,它会提醒“NaN”。@LouisLam由于日期格式的原因而将其删除。。在这里查一下,再次谢谢。对我来说是480。但是我如何使用你的函数来确定纽约是-4还是-5?@LouisLam-its in-minutes除以60得到小时数..480/60=8?这是我的城市(香港)的时区。正如我在问题“我的网站有3个时钟(纽约、东京、伦敦)”中所述。谢谢,但不知为什么,我的主机的php(5.3)不支持DateTimeZone对象。因此,我正在寻找js.DateTimeZone,因为PHP 5.2:。你不是要求一个PHP解决方案,然后对我的答案投反对票,因为它不是JS吗?“投赞成票/反对票需要15个声誉”,我的代表=1。不是我,我在我的本地服务器(Xampp)上测试了它,它工作正常。所以我选择你的答案作为最佳答案。没有重复,我没有得到客户的时区。我想要纽约的时区Hi Louis。你的功能是多余的,你不应该硬编码时区偏移。用户2432106给出的答案最适合PHP。但答案在JavaScript中完全不同。你想要哪个?是的,他的答案是最好的,但在我的主机服务器上不起作用。似乎没有有效的解决方案,所以我改用php。有人说JS没有解决方案吗?你直接跳进了PHP。下次,请不要把两个问题混为一谈。在纯javascript中,实际上有五个不同的库可以用来实现这一点。这才是我真正想要的!谢谢不敢相信我在问问题之前找不到他们中的一个。。。如果你把它作为答案贴出来,它可能是最好的答案。
<?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;
    }
?>
javascript:alert(new Date('2013/06/24').getTimezoneOffset())
date_default_timezone_set('UTC');
echo timezone_offset_get(new DateTimeZone('Asia/Tokyo'),new DateTime('now'));