PHP在Windows中,如何获取忽略时区的当前系统时间?
我有下一个问题。我有几个PHP系统在不同的Windows机器上运行。这些系统大量使用当前时间 现在,我配置了php.ini并将其分配到特定的时区。此外,Windows被配置为相同的时区,一切正常 然而,在我的国家,州政府决定改变夏令时。因此,有时管理员会更改windows时区,而保持php时区不变,从而在系统中造成不一致。其他时间,是自动更改时区的windows 是否有任何方法可以从PHP获得忽略时区的当前系统时间 更新:PHP在Windows中,如何获取忽略时区的当前系统时间?,php,windows,Php,Windows,我有下一个问题。我有几个PHP系统在不同的Windows机器上运行。这些系统大量使用当前时间 现在,我配置了php.ini并将其分配到特定的时区。此外,Windows被配置为相同的时区,一切正常 然而,在我的国家,州政府决定改变夏令时。因此,有时管理员会更改windows时区,而保持php时区不变,从而在系统中造成不一致。其他时间,是自动更改时区的windows 是否有任何方法可以从PHP获得忽略时区的当前系统时间 更新: function time_zone_fix($timeGiven =
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接口一点也不高效。:
。。。在这里,您可以找到PHP支持的时区的完整列表,这些时区用于例如date\u default\u timezone\u set()
然后是这个:UTC
(来自此):
。。。在这里,您可以找到PHP支持的时区的完整列表,这些时区用于例如date\u default\u timezone\u set()
然后是这个:UTC
(来自此)
根据您的需要更改此选项。它返回“无时区的日期和时间”。gm
代表格林威治标准时间,如(格林威治标准时间)。GMT已被(世界时,协调)取代,因此该函数实际上应该被称为utcdate()
但时间的最可移植表示是,即自1970-01-01 00:00:00 UTC以来经过的秒数,忽略闰秒:
time();
的值也是的第二个参数的默认值
顺便说一句,a计划在2012-06-30 23:59:60举行
注意:如果您要求获得某个时区的时间,但没有夏令时校正,则可以执行以下操作:
gmdate('Y-m-d H:i:s', time() + 3600 * $h);
其中,$h
是UTC的小时偏移量(美国为负数),或者,如果偏移量不是完整的小时数:
gmdate('Y-m-d H:i:s', time() + 60 * $m);
其中,$m
是以分钟为单位的UTC偏移量(例如,IST为330,印度标准时间)。但是,带有附加时区偏移量的Unix时间戳本身没有任何意义
最后但并非最不重要的一点是,不要忘记通过网络时间协议同步系统
根据您的需要更改此选项。它返回“无时区的日期和时间”。gm
代表格林威治标准时间,如(格林威治标准时间)。GMT已被(世界时,协调)取代,因此该函数实际上应该被称为utcdate()
但时间的最可移植表示是,即自1970-01-01 00:00:00 UTC以来经过的秒数,忽略闰秒:
time();
的值也是的第二个参数的默认值
顺便说一句,a计划在2012-06-30 23:59:60举行
注意:如果您要求获得某个时区的时间,但没有夏令时校正,则可以执行以下操作:
gmdate('Y-m-d H:i:s', time() + 3600 * $h);
其中,$h
是UTC的小时偏移量(美国为负数),或者,如果偏移量不是完整的小时数:
gmdate('Y-m-d H:i:s', time() + 60 * $m);
其中,$m
是以分钟为单位的UTC偏移量(例如,IST为330,印度标准时间)。但是,带有附加时区偏移量的Unix时间戳本身没有任何意义
最后但并非最不重要的一点是,不要忘记通过网络时间协议同步系统。PHP在Windows中,如何获取忽略时区的当前系统时间?
我有下一个问题。我有几个PHP系统在不同的Windows机器上运行。这些系统大量使用当前时间。PHP在Windows中,如何获取忽略时区的当前系统时间?
我有下一个问题。我有几个PHP系统在不同的Windows机器上运行。这些系统大量使用当前时间。您的问题是什么?您是否为PHP安装了正确的时区数据,并且是否保持该数据的最新状态?你说的是哪个国家?您要查找的“时区”可能是
UTC
。您可以在PHP中使用ini设置来指定,问题是它不是一台服务器,而是多台配置不同的服务器。我可以在php.ini中设置“正确”的时区,但它会失败,因为夏令时。一些机器会自动更改夏令时,而另一些机器则会更改分区以执行此操作。时区在-4GMT和-3GMT之间(在某些情况下,它使用-5GMT)。一些机器自动更改夏令时,而另一些机器管理员手动更改GMT。只需参考UTC。管理员不能更改UTC时间,它是固定的时间点。时区和夏令时只是描述我们在时钟上看到的东西。UTC是全球协调时间,因此总是相同的(至少对全球的人类而言是如此)。您的问题是什么?您是否为PHP安装了正确的时区数据,并且是否保持该数据的最新状态?你说的是哪个国家?您要查找的“时区”可能是UTC
。您可以在PHP中使用ini设置来指定,问题是它不是一台服务器,而是多台配置不同的服务器。我可以在php.ini中设置“正确”的时区,但它会失败,因为夏令时。一些机器会自动更改夏令时,而另一些机器则会更改分区以执行此操作。时区在-4GMT和-3GMT之间(在某些情况下,它使用-5GMT)。一些机器自动更改夏令时,而另一些机器管理员手动更改GMT。只需参考UTC。管理员无法更改UTC ti