php rotator基于日期和时间

时间:2011-09-20 03:53:06

标签: php date time

我找到了这个脚本:

<?php
date_default_timezone_set('America/Los_Angeles'); 
$time = date('H'); 
if($time < 12){ 
   echo 'good morning'; 
}else if($time >= 20 and $time < 21){ 
    echo 'good afternoon'; 
}else{ 
    echo 'good evening'; 
} 
?>

并希望扩展它以将其设置为特定的日期和时间,例如:

  • 如果时间&lt; 2011-11-30 13:59 echo'before'
  • 如果时间&gt; = 2011-11-30 14:00并且&lt; 2012-12-15 20:00 echo'inow'
  • 其他echo'在'
  • 之后

作为一个PHP菜鸟,我看了整个网络,但我能找到的唯一例子是工作日或小时,但不是上面的组合。有人可以这么善良并帮我设置这个吗? 提前谢谢

3 个答案:

答案 0 :(得分:0)

使用php的mktime函数从您想要的任何日期创建一个unix纪元时间。

mktime(12, 34, 56, 7, 8, 2009);  // 12:34:56 on 7-8-2009 

然后可以将其与返回当前unix时代的time进行比较。

$now = time();
$desired = mktime(12, 34, 56, 7, 8, 2009);
if ($now < $desired)
    echo "Not yet!";
else
    echo "It is past time!";

答案 1 :(得分:0)

date_default_timezone_set('America/Los_Angeles'); 
$time = new DateTime(); 
if($time < new DateTime('2011-11-30 13:59')){ 
   echo 'before'; 
}else if($time >= new DateTime('2011-10-31 14:00') and $time < new DateTime('2012-12-15 20:00')){ 
    echo 'now'; 
}else{ 
    echo 'after'; 
} 

答案 2 :(得分:0)

只需更改date()函数的输入,以及if条件:

<?php
date_default_timezone_set('America/Los_Angeles'); 
$time = strtotime(date('Y-m-d H:m')); 
if($time < strtotime('2011-11-30 13:59')){ 
   echo 'Before'; 
}else if($time >= strtotime('2011-11-30 14:00') and $time < strtotime('2011-11-30 20:00')){ 
   echo 'Now'; 
}else{ 
   echo 'After'; 
} 
?>