正确设置 date.timezone on Windows 7 for PHP 5.4.35 binary only install
Correctly setting date.timezone on Windows 7 for PHP 5.4.35 binary only install
我正在为 NetBeans 中的一系列 PHP 类 编写单元测试(使用 PHPUnit 进行测试)。
这些 类 依赖于我不想模拟的 nusoap 脚本。
当我 运行 测试依赖 nusoap 作为依赖项时,我在 nusoap 脚本中得到了这个方法看似常见的 "It is not safe to rely on the system's timezone" 错误:
function getmicrotime() {
if (function_exists('gettimeofday')) {
$tod = gettimeofday();
$sec = $tod['sec'];
$usec = $tod['usec'];
} else {
$sec = time();
$usec = 0;
}
return strftime('%Y-%m-%d %H:%M:%S', $sec) . '.' . sprintf('%06d', $usec);
}
所以,我进入了我的 php.ini 文件并添加了:
[Date]
; Defines the default timezone used by the date functions ;
; http://php.net/date.timezone
date.timezone = "America/New_York"
我只使用 PHP 二进制文件。据我所知,没有 web 实例,因此只有 1 个 ini 文件需要修改。
当我重新运行 这些测试时,我立即从 PHPUnit 得到错误,并且没有测试 运行。如果我正常删除对 ini 文件的编辑,我的测试 运行。 "Normally" 被定义为测试return 具有相同时区错误的失败
网络上的许多其他答案建议在两个地方编辑 ini 文件,一个用于网络,一个用于 CLI。但是,由于我只有 1 个 ini 文件,我不确定还需要修改什么才能正确识别时区。
如何在安装了 PHP 5.4.35 二进制文件(根本没有 IIS)的 Windows 7 机器上完成这项工作?我也尝试将 date_default_timezone_set( 'America/New_York' );
添加到 nusoap 脚本中,但这似乎没有效果。
谢谢。
这是一条红鲱鱼,也很难找到。
我回到基础并在我的 PHP.INI 文件中挖掘,发现我使用的是 test/prod 版本,所以我决定尝试开发版本。
运行 在 NetBeans 和 CLI 中的测试,我现在能够看到 "real" 根本原因,这与我正在测试的 class 相关。除非在 PHP.INI 中配置,否则根本不会向用户显示任何信息。
我正在为 NetBeans 中的一系列 PHP 类 编写单元测试(使用 PHPUnit 进行测试)。
这些 类 依赖于我不想模拟的 nusoap 脚本。
当我 运行 测试依赖 nusoap 作为依赖项时,我在 nusoap 脚本中得到了这个方法看似常见的 "It is not safe to rely on the system's timezone" 错误:
function getmicrotime() {
if (function_exists('gettimeofday')) {
$tod = gettimeofday();
$sec = $tod['sec'];
$usec = $tod['usec'];
} else {
$sec = time();
$usec = 0;
}
return strftime('%Y-%m-%d %H:%M:%S', $sec) . '.' . sprintf('%06d', $usec);
}
所以,我进入了我的 php.ini 文件并添加了:
[Date]
; Defines the default timezone used by the date functions ;
; http://php.net/date.timezone
date.timezone = "America/New_York"
我只使用 PHP 二进制文件。据我所知,没有 web 实例,因此只有 1 个 ini 文件需要修改。
当我重新运行 这些测试时,我立即从 PHPUnit 得到错误,并且没有测试 运行。如果我正常删除对 ini 文件的编辑,我的测试 运行。 "Normally" 被定义为测试return 具有相同时区错误的失败
网络上的许多其他答案建议在两个地方编辑 ini 文件,一个用于网络,一个用于 CLI。但是,由于我只有 1 个 ini 文件,我不确定还需要修改什么才能正确识别时区。
如何在安装了 PHP 5.4.35 二进制文件(根本没有 IIS)的 Windows 7 机器上完成这项工作?我也尝试将 date_default_timezone_set( 'America/New_York' );
添加到 nusoap 脚本中,但这似乎没有效果。
谢谢。
这是一条红鲱鱼,也很难找到。
我回到基础并在我的 PHP.INI 文件中挖掘,发现我使用的是 test/prod 版本,所以我决定尝试开发版本。
运行 在 NetBeans 和 CLI 中的测试,我现在能够看到 "real" 根本原因,这与我正在测试的 class 相关。除非在 PHP.INI 中配置,否则根本不会向用户显示任何信息。