我目前正在开发一个PHP程序,它将显示一个主题的按钮。但我不知道如果计划是在它开始前15分钟的算法。
例如。该主题将于下午2:30开始。系统将比较当前时间,如果当前时间是下午2:15(主题开始前15分钟),则会显示可点击按钮,否则会显示剩余时间的消息。
$current_time = date('h:i A');
$time_start = date('h:i A', strtotime($r['time_start']));
$time_end = date('h:i A', strtotime($r['time_end']));
if( $current_time is 15 mins before $time_start && $current_time < $time_end){
//show clickable button
}else{
//show time remaining
}
请帮忙,逻辑/算法令我困惑
答案 0 :(得分:2)
这就是Datetime对象变得非常方便的地方:
$time_start = new DateTime($r['time_start']);
$now = new DateTime();
$diff = $time_start->diff($now);
if($diff->i < 15){
// Do stuff
}
答案 1 :(得分:2)
不要比较字符串,比较时间戳。 time()
是你的朋友。
$diff = time() - strtotime($r['time_start']);
if($diff < 0)
..too late, exam has started
elseif($diff > 15*60)
..more than 15 minutes remaining
else
..between 15 minutes and on time
使用DateTime
也可以,但只是简单地比较2个基本时间戳,这只是一个重大的过度杀伤。
答案 2 :(得分:-1)
$time = time()
if(($time > strtotime("2:15pm")) && ($time < strtotime("2:30pm")){
//Display button
}else{
//Show time remaining
}