假设我想检查用户是否在特定时间段内登录(例如,在某个时间段内不允许登录),但我想根据我的时区进行检查。
我会做以下事情:
$time = ...; // Get the start and end times for our application logic
date_default_timezone_set('America/New_York');
$currTime = new DateTime();
$startTime = new DateTime($time['StartTime']);
$endTime = new DateTime($time['EndTime']);
if($currTime > $startTime && $currTime < $endTime) { ... }
我们是否应该重置default_timezone
(先重置get
,然后再次设置)?以上仅适用于函数吗?
无需再次设置,它是在运行时设置的,并且只在调用脚本的范围内。
根据您的评论回复。
尝试将一个文件(php.ini)添加到您的托管帐户文件夹中,它应该就在您的webroot之外,用户在下面的示例中。
把这行加到上面。
date.timezone="美国/纽约"
/home/user/public_html/
会发生两件事中的一件,要么它不起作用,要么什么都没冒,要么希望它能为你设置全账户的时区,并节省你在脚本中处理时区的时间,除非你在用例基础上明确需要这样做。