我只想检查当前时间是否在2次之间
到目前为止,我浏览了多个脚本,但所有脚本都包含了日期或者只是困难,或者脚本只计算完整的小时数,如6或7,而我需要检查小时和分钟
我很感激帮助,我想要的脚本设置
$begintime = 8:30;
$endtime = 17:00;
if(currenttime is between $begintime and $endtime) {
// do something
} else {
// do something else
}
答案 0 :(得分:7)
在定义中使用DateTime对象。它将在内部使用当前日期,然后可以将其忽略。
$now = new DateTime();
$begin = new DateTime('8:00');
$end = new DateTime('17:00');
if ($now >= $begin && $now <= $end)
高级:即使在执行期间日期更改(DateTime
对象可能有一天有1天的日期),这也是防弹的,请从{重新设置日期{1}} $now
和$start
$end
对象:
DateTime
或者,查看Brick\DateTime
扩展程序,其中可以找到忽略日期的$y = (int) $now->format('Y');
$m = (int) $now->format('n'); // n is the month without leading zeros
$d = (int) $now->format('d');
$begin->setDate($y, $m, $d);
$end->setDate($y, $m, $d);
类。
答案 1 :(得分:2)
查看PHP的DateTime功能。
$now = new Datetime("now");
$begintime = new DateTime('08:30');
$endtime = new DateTime('17:00');
if($now >= $begintime && $now <= $endtime){
// between times
echo "yay";
} else {
// not between times
echo "nay";
}
另外,请确保在php.ini中正确设置了您的时区。或者您可以使用date_default_timezone_set();
在运行时设置它答案 2 :(得分:0)
退房。我测试了这段代码。它工作正常。
date_default_timezone_set("Asia/Kolkata");
$current_time = date("h:i a");
$begin = "9:00 am";
$end = "5:00 pm";
$date1 = DateTime::createFromFormat('H:i a', $current_time);
$date2 = DateTime::createFromFormat('H:i a', $begin);
$date3 = DateTime::createFromFormat('H:i a', $end);
if ($date1 > $date2 && $date1 < $date3) {
echo 'Here';
} else {
echo 'Not';
}