用PHP比较时间

时间:2014-01-09 02:31:34

标签: php

我目前正在开发一个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
}

enter image description here

请帮忙,逻辑/算法令我困惑

3 个答案:

答案 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
}