我刚刚买了一部新电脑,和我已经建立的PHP / MySQL /数据库等...我想我只是在那里,除了它抛出这个弧线球。 我的登录脚本工作正常,但现在它随地吐痰以下警告(这搅乱JSON)。
警告 :日期()[function.date]:这是不是安全的依靠系统的时区设置。 您需要使用date.timezone设置或date_default_timezone_set()函数。 如果您使用的任何这些方法,你仍然得到这样的警告,你最有可能拼错时区标识符。 我们选择了'南极洲/麦格理'的'EST / 10.0 /没有DST',而不是在...上线47 / PHP / login.php中
我的代码显然使用date()
并正在努力在现场版本和旧机器上的。 我得到两个警告,下面的代码两行:
$date = date("ymd");
$this_year = date("y");
我的研究(见这里 )表明,这些功能的行为取决于php.ini中。
所以,我应该改变的php.ini在新机器上,还是我用某种方法已过时,我应该沟date()
共?
谢谢。
你并不需要修改php.ini文件,如果您使用date_default_timezone_set()
只要将它设为您也将工作的时区。
像这样的东西应该在配置文件中或在你使用日期(如果它只有一个页面)在页面上:
date_default_timezone_set('America/Los_Angeles');
这不是一个例外,那就是现在大概雨后春笋般冒出来,因为你的错误报告在新机器上设置从旧的不同的警告。
我建议遵循警告的建议,并使用date_default_timezone_set()
设定时区在你需要它的脚本。
首先,你虽然可能知道,这解决了这个问题。
date_default_timezone_set('Your/Timezone');
如果你想在php.ini配置,如下修改
[Date]
; ...
; ...
date.timezone = Your/Timezone
你不必改变php.ini中。
但是,如果你有,你会用大部分的PHP文件中添加以下行到php.ini应该做的伎俩的时区。
date.timezone = "Your/Timezone"
在我来说,我增加了以下线为php.ini。 就个人而言,我宁愿保持我们所有的服务器在UTC时区。
date.timezone = "UTC"
文章来源: PHP - date() vs. date.timezone / date_default_timezone_set()