PHP和小时计算

时间:2014-05-22 17:26:16

标签: php datetime time

我有一点逻辑问题。 我有这个:

$y=2014;
$m=05;
$d=22;
$d2=$d+1;

$sunset=17:52;
$sunrise=05:44;

我有一些事件发生在第22天和第23天,但我想只选择在$ sunset和$ sunrise之间发生的事件。

我可以这样说:

if($event [$sunset<BETWEEN>$sunrise]){
//show something;
}

?提前谢谢。

2 个答案:

答案 0 :(得分:2)

使用DateTime()因为它们具有可比性,因此很容易:

$sunrise = new DateTime('2014-05-22 05:44');
$sunset  = new DateTime('2014-05-23 17:52');
$good    = new DateTime('2014-05-22 18:00');
$bad     = new DateTime('2014-05-23 18:00');
if ($good > $sunrise && $good < $sunset) {
    echo '$good is good';
}
if ($bad > $sunrise && $bad < $sunset) {
    echo '$bad is good';
}

Demo

答案 1 :(得分:1)

您应该创建DateTime对象,然后就像计算时间差一样简单。

http://www.php.net/manual/en/datetime.diff.php

示例:

<?php
$datetime1 = new DateTime('2009-10-11');
$datetime2 = new DateTime('2009-10-13');
$interval = $datetime1->diff($datetime2);
echo $interval->format('%R%a days');
?>