PHP - 如何只使用几小时

时间:2015-08-17 08:17:50

标签: php time intervals hour

有没有办法只与时间一起工作?我的意思是只有24小时。我知道date()strtotime()time()函数,但据我所知,它们可以使用整个日期。

我的目标是制作48个半小时。我需要00:00,00:30,01:00,01:30~23:30。每隔半小时的间隔就有它自己的乘数。因此,我需要接收传入时间(例如15:22)并乘以最近间隔的值(它的15:00)。

如果我使用下一个代码,它会把我的时间连接到今天':

$b = strtotime('00:32'); // 1439760720

所以,明天这个数字会有所不同。

2 个答案:

答案 0 :(得分:0)

将已经过strtotime的日期除以60两次将得出它所代表的小时数。

例如,在此功能中,我查看两个日期之间的差异,即当前日期和帖子的发布日期。如果他们的差异小于24小时,则日期变为“今天”,在24到48之间,日期变为“昨天”,并且对于那段时间内的任何日期,它将保持为实际日期。

function niceDate($date) {
        $strtotime = strtotime($date);
        $comparison_date = strtotime(date('Y/m/d',$strtotime));
        $now = strtotime(date('Y/m/d'));
        $difference = ((($now-$comparison_date)/60)/60);
        if($difference<24) {$nice_day = 'today';}
        elseif ($difference>=24 && $difference<48) {$nice_day = 'yesterday';}
        else {$nice_day = 'on '.date('l F j, Y',$strtotime);}
        }
        $nice_date = $nice_day.' at '.date('H:i',$strtotime);
        return $nice_date;
    }

答案 1 :(得分:0)

做我需要的最简单方法是使用同一年,一个月,一天。幸运的是,每个时间戳都有一个共同的模板视图。这就是为什么我需要的是从传入的字符串中获取时间并将其添加到当前的'Y-m-d'。

例如,我有 $ a 作为模板半小时时间。并且 $ b 作为传入时间戳。我可以将 $ b 切成小时和分钟,然后以与使用模板时间相同的方式使用它。

$a = "00:30";
$b = "2015-05-03 13:45";
$c = strstr($b, ' ');

if (strtotime($a) < strtotime($c)) echo 'ok!'; else echo 'not ok!'; // ok!