在我的网络应用中,我让用户从列表中选择他们的首选时区(包含all timezones that PHP supports)。
假设$_POST['timezone']
是所选的时区(例如 America/New_York
)。
我使用以下代码设置它,不会产生错误:
default_date_timezone_set($_POST['timezone']);
但是当我重新加载页面时,它会回到之前的状态(例如 Europe/Moscow
)。
我是否必须在每个脚本中设置默认时区,或者功能(default_date_timezone_set
)是否正常工作?
谢谢!
答案 0 :(得分:2)
此功能仅更改脚本执行的时区。 您可以将时区存储在会话变量中,并将时区设置在每个页面的顶部。
答案 1 :(得分:1)
您应该将其保存在数据库中,并在任何时间相关时设置时区。它运作正常。它只应该为该脚本执行设置它(一个HTTP请求)。
答案 2 :(得分:1)
设置包含用户选择的时区的Cookie。
/// Make sure you sanitize all POST/COOKIE variables if needed.
$timezone = $_COOKIE['timezone'];
if(isset($_POST['timezone'])) {
/// Set cookie for some amount of time -- I chose 2 weeks
setcookie('timezone',$_POST['timezone'],time()+60*60*24*14);
$timezone = $_POST['timezone'];
}
default_date_timezone_set($timezone);