Php 如何使用Javascript中的DST获取时区偏移(而不是客户端)?
我的网站有3个时钟(纽约、东京、伦敦) 我硬编码偏移量(-5,9,0): 但是,对于纽约,时区将因“夏令时”而改变 我可以有一个函数来获取时区偏移吗?像这样: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/
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'));