需要仅在工作时间显示内容

时间:2014-06-12 23:15:58

标签: php date time timezone

我需要在中央时间上午9点到下午6点之间显示内容。我已经尝试过各种方法来使用php,但结果永远不准确。我尝试的一个例子是:

<?
$openTime = strtotime(date('Y-m-d').' 09:00:00');
$closeTime = strtotime(date('Y-m-d').' 18:00:00');
$currTime = strtotime('now');

if (($openTime <= $currTime) && ($currTime <= $closeTime)) { ?>

但是,在我们服务器的时间里,这一点从未接近准确。我们的服务器应该在美国中部的时区,但是上面的代码再次起作用。

那么有没有一种方法可以指定时间ALONG与指定的时区,以使其正常工作?由于上面的代码没有准确地工作,看起来php使用的是与我们服务器不同的时区。我想要的是内容在中央时间上午9点到下午6点之间显示。我觉得我错过了一些明显的东西。谢谢!

2 个答案:

答案 0 :(得分:4)

使用Datetime('now', timezone)获取当前时间

$curdate = new Datetime('now', new Datetimezone('America/Chicago'));

使用setTime设置小时和分钟

$openTime = clone $curdate;
$openTime->setTime(9,0);

$endTime = clone $curdate;
$endTime->setTime(18,0);

答案 1 :(得分:0)

使用以下方式设置您的时区:

date_default_timezone_set('Your time zone') 

此处的可用时区:Acceptable timezones