比较没有日期的时间

时间:2012-09-23 17:02:55

标签: php datetime

因此可以将时间与<>等进行比较,但与strtotime一起使用时,您会得到unix时间戳,因此您无法比较与时间无关的时间日期。

我想做的是能够表达如下内容:

$reference_time = "2010-01-01 18:00:00";
print strtotime("19:00:00") > strtotime($reference_time);
print strtotime("16:00:00") > strtotime($reference_time);

但我希望第二个表达式返回false(因为,忽略日期,时间更短)。最简单的方法是什么? (最好不要拆分字符串)

3 个答案:

答案 0 :(得分:3)

strtotime也有第二个参数。尝试:

$reference_time = "2010-01-01 18:00:00";
$absolute = strtotime($reference_time);

print strtotime("19:00:00", $absolute) > $absolute;
print strtotime("16:00:00", $absolute) > $absolute;

演示:http://codepad.org/uG4bsxTH

答案 1 :(得分:1)

您可以将每个Unix时间戳的模数相对于86400(一天中的秒数)。

http://php.net/manual/en/language.operators.arithmetic.php

答案 2 :(得分:0)

你可以这样做:

print strtotime("19:00:00") > strtotime(explode(' ',$reference_time)[1]);
print strtotime("16:00:00") > strtotime(explode(' ',$reference_time)[1]);

您需要 PHP 5.4 作为上述代码的最低要求。