Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/16.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在Windows中,如何获取忽略时区的当前系统时间?_Php_Windows - Fatal编程技术网

PHP在Windows中,如何获取忽略时区的当前系统时间?

PHP在Windows中,如何获取忽略时区的当前系统时间?,php,windows,Php,Windows,我有下一个问题。我有几个PHP系统在不同的Windows机器上运行。这些系统大量使用当前时间 现在,我配置了php.ini并将其分配到特定的时区。此外,Windows被配置为相同的时区,一切正常 然而,在我的国家,州政府决定改变夏令时。因此,有时管理员会更改windows时区,而保持php时区不变,从而在系统中造成不一致。其他时间,是自动更改时区的windows 是否有任何方法可以从PHP获得忽略时区的当前系统时间 更新: function time_zone_fix($timeGiven =

我有下一个问题。我有几个PHP系统在不同的Windows机器上运行。这些系统大量使用当前时间

现在,我配置了php.ini并将其分配到特定的时区。此外,Windows被配置为相同的时区,一切正常

然而,在我的国家,州政府决定改变夏令时。因此,有时管理员会更改windows时区,而保持php时区不变,从而在系统中造成不一致。其他时间,是自动更改时区的windows

是否有任何方法可以从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接口一点也不高效。

:

。。。在这里,您可以找到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