2016-04-14 37 views
0

我使用symfony3,我想用PHPUnit的date.timezone php.ini的不設置

我使用的是甲基苯丙胺和我創建了一個別名使用它的PHP

我的PHP版本5.6.10

which php 
php: aliased to /Applications/MAMP/bin/php/php5.6.10/bin/php 

php --ini我有這樣的結果

Configuration File (php.ini) Path: /Applications/MAMP/bin/php/php5.6.10/conf 
Loaded Configuration File:   /Applications/MAMP/bin/php/php5.6.10/conf/php.ini 
Scan for additional .ini files in: (none) 
Additional .ini files parsed:  (none) 

/Applications/MAMP/bin/php/php5.6.10/conf/php.ini 我設置

date.timezone = "Europe/Rome" 

我修改也從php.ini的MAMP具有相同值的

當我使用的PHPUnit

1)測試\的appbundle \控制器\ DefaultControllerTest :: testIndex date_default_timezone_get():依靠系統的時區設置是不安全的。您需要需要才能使用date.timezone設置或date_default_timezone_set()函數。如果您使用這些方法中的任何一種,並且仍然收到此警告,則很可能是拼寫錯誤的時區標識符。我們現在選擇了「UTC」時區,但請設置date.timezone以選擇您的時區。

在我的phpinfo()我有

指令本地值主值

date.timezone歐洲/羅馬歐洲/羅馬

回答

1

在AppKernel你可以設置default_timezone像這

public function boot() { 
    date_default_timezone_set('Europe/Rome'); 
    return parent::boot(); 
} 
+0

我看到大多數答案加入'__construct'而不是'boot',就像http://stackoverflow.com/a/29152788/276648。有什麼區別? – user276648

1

你的phpinfo()說「歐洲/羅馬」已設置,所以我猜你已經重新啓動了網絡服務器?

我總是將它與date_default_timezone_set("Europe/Rome");函數一起放在PHP文件的頂部,它總是被加載。

+0

是的。我重新啓動MAMP(網絡服務器),即使我認爲phpunit使用cli php。無論如何,我有同樣的問題。我不喜歡在php文件中使用'date_default_timezone_set()' – monkeyUser

+0

**編輯:抱歉沒有看到沒有任何額外的conf文件** 檢查是否有其他配置文件,「conf.d」也許? 我覺得'phpinfo()'也給你添加ini文件的位置,也得到加載 – MDijkstra

+0

感謝您的回覆。在phpinfo()我可以看到'附加的.ini文件解析\t =>(無)' – monkeyUser