我有下一个问题。我有几个 PHP 系统在不同的 Windows 机器上运行。这些系统集中使用当前时间。
现在,我配置了 php.ini 并将其分配给特定的时区。Windows 也配置为相同的时区,一切都按预期工作。
但是,在我国,国家决定更改夏令时。因此,有时,管理员会更改 Windows 时区而保持 php 时区不变,从而在系统中造成不一致。其他时候,是自动更改时区的窗口。
是否有任何方法可以从 PHP 获取忽略时区的当前系统时间?
更新:
function time_zone_fix($timeGiven = "H:i:s")
{
$shell = new COM("WScript.Shell") or die("Requires Windows Scripting Host");
$time_bias = -($shell->RegRead("HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Control\\TimeZoneInformation\\ActiveTimeBias")) / 60;
$timestamp_bias = 60 * 60 * $time_bias;
return gmdate($timeGiven, strtotime($timestamp_bias . " seconds"));
}
无论指定什么时区/dsl,都给出当前日期和时间。然而,创建一个新的 COM 接口绝非高效。