2012-07-13 48 views
1

我想从15:00(下午3点)显示#1至4:00第二天(上午04点)和时间#2显示时间和时间之间的代码B不工作

但其余有些原因,它不工作?!

这里是我的代码感谢您的帮助

<?php 
$least=mktime(15,0,0,date("m"),date("d"),date("y")); 
$most=mktime(28,0,0,date("m"),date("d"),date("y"));//12pm 
if (time()>=$least && time()<=$most){ 
    ?> 
     <script type="text/javascript"> 

alert("#1"); 

</script> 
    <?php 
}else{?> 
     <script type="text/javascript"> 

alert("#2"); 

</script> 
    <?php 
} 
?> 
+0

servertime现在:周五7月13日二时19分22秒PDT 2012 – Chriswede 2012-07-13 09:18:47

+0

为什么你认为它不工作?我复制你的代码,它工作正确。用于调试前检查当前时间。 (4 $ now = strtotime(“+ 3 hour”); 5 echo date('Ymd H:i:s',$ now)。“\ n”; 6 if($ now> = $ least && $ now <= $ most){) – Empty 2012-07-13 09:42:16

回答

2

这很简单:

$now = date('H',time()); 
if ($now>=4 && $now<=15){ 
?> 
    <script type="text/javascript"> 
    alert("#2"); 
    </script> 
<?php 
}else{ 
?> 
    <script type="text/javascript"> 
    alert("#1"); 
    </script> 
<?php 
} 
+0

这意味着从下午3点到4点#2,剩下的时间#1会显示出来吗? – Chriswede 2012-07-13 09:50:33

+0

是的,你每天有相同的三个时间间隔重复:00-04 [1],04-15 [2],15-24/00 [1],所以很简单。 – Stano 2012-07-13 09:59:35

+0

你也可以使[连词的否定](http://en.wikipedia.org/wiki/De_Morgan%27s_laws#Engineering):'echo($ now <4 || $now> 15)? '#1':'#2';'交换两个分支。 – Stano 2012-07-13 11:31:56

0
$cur_hour = date("H"); 
$beg_hour = "11"; 
$end_hour = "28"; 
if ($cur_hour <= 4) 
     $cur_hour += 24; 
if ($cur_hour >= $beg_hour && $cur_hour <= $end_hour) 
     echo "#1"; 
else 
     echo "#2"; 
if ($cur_hour > 24) 
     $cur_hour -= 24; 
echo "<br /><br />".$cur_hour; 

现在应该做是正确的。

+0

一个数字如何能够同时大于15和小于4?你必须是一个巫师。 – Doa 2012-07-13 09:25:04

+0

嗯,好点。但根据这些数字实际上是几个小时应该有这样的操纵。 – dpitkevics 2012-07-13 09:26:57

+0

有,但你的方式是不正确的。 OP的方法实际上已经更好了,因为他在小时中使用了28(24 + 4)并使用time()函数进行比较。 – Doa 2012-07-13 09:29:17

相关问题