不同的时区具有相同的时间戳



我运行了这个脚本:

echo date_default_timezone_get()."n";
echo "----n";
date_default_timezone_set('Asia/Kabul');
echo date_default_timezone_get()."n";
echo "----n";
echo time()."n";
$dt = new DateTime;
echo $dt->format('U') . "n";
echo "----n";
date_default_timezone_set('UTC');
echo date_default_timezone_get()."n";
echo "----n";
echo time()."n";
$dt = new DateTime;
echo $dt->format('U') . "n";

并且对于所有4个时间戳值,它表示:1325905766

我在某个地方读到,无论时区设置如何,新的DateTime总是将UTC设置为时区,所以我明白了,但time()呢?

几秒钟前,在另一台服务器上(可能不在欧洲(ideone.com)),它返回4次:1325905723

这是一样的!(几秒钟明显不同,但时区相同。)

time()始终且仅返回UTC???发生了什么事??

是的,它们都使用UTC。具体来说,time()U格式都返回自1970年1月1日UTC午夜("Unix epoch")以来经过的非闰秒数。由于历元是一个固定点,其定义与用户的时区无关,并且此后的秒数在所有时区中都是相同的(忽略相对论效应等),因此无论时区设置如何,time()都会返回相同的值。

time()返回自1970年1月1日00:00:00GMT以来的秒数。

无论您是在亚洲/喀布尔还是在Hither/Yon,自该特定时间点以来经过的秒数都是相同的。

相关内容

  • 没有找到相关文章

最新更新