我正在尝试创建一个简单的函数,根据一天中的时间输出2行不同的文本。我希望它在下午4点后说 - 第二天将在第二天处理。
到目前为止我写过这个:
<?php
$currentTime = time() + 3600;
echo date('H:i',$currentTime);
?>
然而,由于date函数返回一个字符串,我不确定如何使用IF语句检查时间是否大于16:00。
答案 0 :(得分:20)
应该这样做
if (((int) date('H', $currentTime)) >= 16) {
// .. do something
}
因为PHP是弱类型的,所以你可以省略(int)
- cast。
作为旁注:如果你命名一个变量$currentTime
,你不应该加1小时,因为那时它不再是现在的时间,而是将来一小时的时间;)总之< / p>
if (date('H') >= 16) { /* .. */ }
答案 1 :(得分:5)
if ($currentTime > strtotime('16:00:00')) {
// whatever you have to do here
}
答案 2 :(得分:2)
使用date('H:i:s')
以字符串格式获取时间并将其与“16:00:00”进行比较。
答案 3 :(得分:1)
比较时间戳。
if (strtotime($date) < strtotime('16:00'))
答案 4 :(得分:1)
if(mktime(16, 0, 0) < time()) {
echo "Next day delivery will be processed the following day.";
} else {
echo "Will be processed today.";
}
答案 5 :(得分:1)
如果你想要更准确一些,也许是一个小改进:
if ( (int) date('Hi', $currentTime) > 1600 ) {
// .. do something
}
答案 6 :(得分:0)
试试这个
function checkTime($time1,$time2)
{
$start = strtotime($time1);
$end = strtotime($time2);
if ($start-$end > 0)
return 1;
else
return 0;
}
$currentTime = time() + 3600;
$time1 = date('H:i',$currentTime);
$time2 = '16:00';
if(checkTime($time1,$time2))
echo "First parameter is greater";
else
echo "Second parameter is greater";
答案 7 :(得分:0)
我用它来全天更新3次......
$my_time= strtotime('now')-18000;//Now. My servers timezone is 5hrs ahead.
$my_day= strtotime('today')-86400; //today midnight central time.
$my_eve= $my_day +54000; //3pm central
if ($my_time > $my_day + 32400 && $my_time < $my_eve){
echo date('F j, Y, g:i a', $my_day + 32400); //9am
}elseif ($my_time > $my_eve){
echo date('F j, Y, g:i a', $my_eve); //3pm
}else{
echo date('F j, Y, g:i a', $my_day);} //midnight
答案 8 :(得分:0)
您还可以检查两个日期之间的差异:-
<?php
$date1 = new DateTime("now");
$date2 = new DateTime("tomorrow");
var_dump($date1 == $date2); //bool(false)
var_dump($date1 < $date2); //bool(true)
var_dump($date1 > $date2); //bool(false)
?>