自php5.10起加入了时区的设置,在php中显示的时间都是格林威治标准时间,因此便与中国的用户会差八个小时。
修改php.ini中的 date.timezone 参数:
; Defines the default timezone used by the date functions
;date.timezone =
默认是关闭的,只需把注释去掉,改为即可
; Defines the default timezone used by the date functions
date.timezone = PRC
其中PRC是“中华人民共和国”!
其他选项可以参考php手册。
其中的亚洲地区漏掉了北京,MGB的。
如果没有修改php.ini的权限,只需要在调用时间日期函数的时候,调用 date_default_timezone_set('
PRC') 即可!
也可以调用date_default_timezone_get()来查看当前的时区设置!
關於XXX,大陸內地可用的值是:
Asia/Chongqing ,Asia/Shanghai ,Asia/Urumqi (依次為重慶,上海,烏魯木齊)
港台地區可用:Asia/Macao ,Asia/Hong_Kong ,Asia/Taipei (依次為澳門,香港,台北)
台灣地区可設為:date.timezone = "Asia//Taipei"
還有新加坡:Asia/Singapore
附:PHP5中的时间相差八小时的解决办法
php5.1.2的时间显示整整少8个小时,
echo date("Y-m-d H:i:s");
?>
结果自己测试果然是相差8小时。
原来在php5以及起以上的版本,要输出本地的时间(限中国),可以参考如下的写法:
date_default_timezone_set('Asia/Shanghai');
echo date('Y-m-d H:i:s');
?>
这个也是可以的:
date_default_timezone_set('Asia/Chongqing');
echo date('Y-m-d H:i:s');
?>
看到美妙的结果了吧:时间相差八小时的问题成功解决了。
有关php递归函数返回值的使用方法,供大家学习参考。
一个PHP递归函数的问题,问题出在PHP递归函数的返回值上。
原来的程序代码:
functiontest($i)
{
$i-=4; if($i<3)
{
return $i;
}
else
{
test($i);
}
}
echotest(30);
?>
以上代码好像没有问题,其实有else里面是有问题的。
在这里执行的test没有返回值,虽然满足条件$i<3时return$i整个函数还是不会返回值的。
下面采用PHP递归函数加上返回值的方法,注意看代码中的注释部分与上面的代码有何不同:
function test($i)
{
$i-=4; if($i<3)
{
return $i;
}
else
{
return test($i);//增加return,让函数返回值
}
}
echotest(30);
?>
一个php数据流应用的小例子,供大家学习参考。
/**
php数据流应用
date:2013/2/19
*/
$count = 5;
start:
if($count < 5) echo "You can try {$count} time, ";
echo "Put Password: ";
$handle = fopen ("php://stdin","r");
$line = fgets($handle);
if(trim($line) != '123456'){
$count--;
if(!$count) goto error;
goto start;
}
goto success;
error:
echo "Please try after 1 hour! http://www.";
goto out;
success:
echo "Logined!";
out:
?>
效果图如下所示: