【发布时间】:2011-02-15 20:01:12
【问题描述】:
以下程序的输出可以在这里看到:http://codepad.org/egNGJBUL
<?php
/* Checking if time() is really timezone independent */
date_default_timezone_set('UTC');
echo time();
echo "\n";
date_default_timezone_set('Australia/Queensland');
echo time();
echo "\n";
/* Using date() function passing timestamp parameter */
date_default_timezone_set('UTC');
echo date('Y-m-d H:i:s',time());
echo "\n";
date_default_timezone_set('Australia/Queensland');
echo date('Y-m-d H:i:s',time());
echo "\n";
/* Using date() function without passing timestamp parameter */
date_default_timezone_set('UTC');
echo date('Y-m-d H:i:s');
echo "\n";
date_default_timezone_set('Australia/Queensland');
echo date('Y-m-d H:i:s');
echo "\n";
从输出的第 1-2 行,我们可以看到 time() 返回一个真正与时区无关的值。
在第3-4行,奇怪的是date()函数忽略了timestamp参数,仍然按照设置的时区显示日期时间。
为什么会这样?
【问题讨论】: