根据http://www.php.net/manual/en/function.date.php
可选的时间戳参数是一个整数 Unix 时间戳,如果没有给出时间戳,则默认为当前本地时间。换句话说,它默认为 time() 的值。
但是,在 time() 的定义中没有提到它依赖于时区。哪一个是对的?
根据http://www.php.net/manual/en/function.date.php
可选的时间戳参数是一个整数 Unix 时间戳,如果没有给出时间戳,则默认为当前本地时间。换句话说,它默认为 time() 的值。
但是,在 time() 的定义中没有提到它依赖于时区。哪一个是对的?
time() 返回自 1970 年 1 月 1 日 00:00 GMT 以来的秒数。
无论您在哪个时区,自 UNIX 纪元以来经过的秒数都是相同的。
不,返回的值与time()
时区无关:
date_default_timezone_set("UTC");
echo "UTC:".time();
echo "<br>";
date_default_timezone_set("Europe/Helsinki");
echo "Europe/Helsinki:".time();
echo "<br>";
两者都输出相同的值。
关于您的编辑,返回值time()
取决于您机器上的当前时间。您机器上的当前时间通常通过指定时区以及日期 + 时间来设置。
当我们说返回的值与time()
时区无关时,我们的意思是在任何给定时刻,地球上所有位置的 UTC 时间的正确值都是相同的。
假设日本的一个人要正确设置他们的系统时间(以及时区),而印度的另一个人也要做同样的事情。在任何给定时刻,如果它们time()
同时调用,它们将获得相同的值。
我认为文档有点含糊,意思是“本地”,就像“运行它的机器”一样。或者您可以表示由于date
根据设置的时区格式化时间戳,返回的值date
将是“本地”时间。
即,“本地”在这里并不真正意味着什么。
我想我知道这个问题。
time() 它本身与时区无关。
然而,
date() 取决于时区。数据的格式取决于 date_default_timezone_set
所以,按照阿萨德的回答
date_default_timezone_set("UTC");
echo "UTC:".date(...);
echo "<br>";
date_default_timezone_set("Europe/Helsinki");
echo "Europe/Helsinki:".date(...);
echo "<br>";
会产生不同的价值。他们都使用时间