Gly*_*ine 68
echo date('I');
Run Code Online (Sandbox Code Playgroud)
I(大写i)是1/0,表示夏令时当前是否有效.
http://php.net/manual/en/function.date.php
希望能帮助到你.
这是作为对另一个答案的评论发布的。这是正确的答案,对其他人来说很有价值。当前标记为正确的答案仅在您想了解服务器/PHP 时区是否为夏令时 (DST) 时才有效。它不适用于任何时区(或者如果您的服务器/PHP 时区设置为 UTC)。
date('I')"1"如果服务器/PHP 时区处于 DST,则返回,否则返回"0"。
要查明特定时区是否处于夏令时,请使用:
$date = new DateTime('now', new DateTimeZone('America/Los_Angeles'));
var_dump($date->format('I'));
Run Code Online (Sandbox Code Playgroud)
替换America/Los_Angeles为您感兴趣的任何时区。
为了概括这一点,并获取布尔值而不是字符串:
function getIsDaylightSaving($timezoneStr = 'America/Los_Angeles') {
$date = new DateTime('now', new DateTimeZone($timezoneStr));
return (bool) $date->format('I');
}
Run Code Online (Sandbox Code Playgroud)
注意:您还可以使用此方法来查明特定时区是否有任何日期/时间处于夏令时。只需替换DateTime('now')为特定的日期/时间字符串即可。例如,要了解11:14pm on December 20th, 2021美国东部时区是否处于夏令时:
$date = new DateTime('2020-12-20 23:14', new DateTimeZone('America/New_York'));
var_dump((bool) $date->format('I')); // returns false
// or a date/time that was in DST
$date = new DateTime('2020-03-20 23:14', new DateTimeZone('America/New_York'));
var_dump((bool) $date->format('I')); // returns true
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
18628 次 |
| 最近记录: |