在Windows 7上正确设置date.timezone for PHP 5.4.35二进制文件只能安装

时间:2015-03-16 20:55:03

标签: php phpunit

我正在为NetBeans中的一系列PHP类编写单元测试(使用PHPUnit进行测试)。

这些课程依赖于我不想嘲笑的nusoap脚本。

当我运行依赖于nusoap作为依赖关系的测试时,我看起来很常见"依赖系统的时区"是不安全的。 nusoap脚本中此方法的错误:

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文件的编辑,我的测试运行正常。 "通常"定义为测试返回具有相同时区错误的失败

网络上的许多其他答案建议在两个地方编辑ini文件,一个用于Web,一个用于CLI。但是,因为我只有1个ini文件,所以我不确定还需要修改什么才能正确识别时区。

如果在安装了PHP 5.4.35二进制文件的Windows 7计算机上(根本没有IIS),我会如何工作?我也尝试将date_default_timezone_set( 'America/New_York' );添加到nusoap脚本中,但这似乎没有效果。

感谢。

1 个答案:

答案 0 :(得分:0)

这是一只红鲱鱼,也很难找到。

我回到基础并在我的PHP.INI文件中挖掘并发现我使用的是test / prod版本,所以我决定尝试开发版本。

在NetBeans和CLI中运行测试,我现在能够看到“真正的”根本原因,这与我正在测试的类有关。除非在PHP.INI中配置,否则根本没有向用户显示的信息。