2012-07-29 107 views

回答

4

简单的一个能够完成任务:

if (date('H') < 17) 
{ 
    // DO SOMETHING 
} 

只要记住这个日期来自服务器。所以,如果客户在另一个时区,那可能无法按需要工作。关于这一点的好处是,用户无法更改他的电脑日期以欺骗网站。

如果你想这样做的JavaScript(这里的价值将来自于用户的计算机),只要做到以下几点:

var today = new Date(); 
if (today.getHours() < 17) 
{ 
    // DO SOMETHING 
} 
3
if(time() < strtotime('today 05:00 pm')) { 
    // Do stuff 
} 
+1

+1,因为它会工作,但我会尽量避免'的strtotime ()'这些天尽可能 - 在大多数情况下,这是不必要的。 – Spudley 2012-07-29 21:45:40

6

该解决方案使用了漂亮的PHP5 DateTime类,并避免了笨重的老strtotime()功能:

$hoursNow = new DateTime()->format('H'); 
if($hoursNow < 17) { 
    .... 
} 
+0

+1好看又简单 – Wh1T3h4Ck5 2012-07-29 21:53:48

+0

这是否考虑到了DST? – hohner 2012-07-29 21:55:51

+2

@Jamie,是的,如果服务器的时区使用DST(或时区设置) – Wh1T3h4Ck5 2012-07-29 21:57:21

0

总之...

$t = time(); # or any other timestamp 
if (date('H', $t) < 17) { 
    // Do stuff 
    } 

适用于任何一天

注意:请确保您的时区是正确的(检查PHP的配置或调用date功能之前只使用date_default_timezone_se吨功能)

相关问题