比较if条件内的时间差



我需要比较;今天的日期和时间";以及未来的两次约会。这些日期也包括时间信息。

目前我有一个问题;如果条件";没有输出预期的结果。

这就是代码和实际示例:

$date_a = new DateTime('now');
$date_b2 = new DateTime('wednesday + 7 day 08:00');
$date_c2 = new DateTime('saturday + 7 day 20:00');
$intervaln = date_diff($date_a,$date_b2);
$interval2n = date_diff($date_a,$date_c2);
$diff1n = $intervaln->format('%d d. %h h. %i min.');
$diff2n = $interval2n->format('%d d. %h h. %i min.');
if ($diff1n > $diff2n) {
echo $diff1n;
} 
else if ($diff1n < $diff2n) {
echo $diff2n;
}

正如您所看到的,它输出第二个条件,但它应该是第一个条件,因为$diff1n$diff2n具有更大的时间差。

将这些日期和时间相互比较的正确方法是什么?

在时间上尝试strtotime((。

$diff1n = $intervaln->format('%d d. %h h. %i min.');
$diff2n = $interval2n->format('%d d. %h h. %i min.');
$d1=strtotime($diff1n);
$d2=strtotime($diff2n);
if ($d1> $d2) {
echo $diff1n;
} 
else if ($d1< $d2) {
echo $diff2n;
}

您可以使用setTimestamp((函数将日期转换为时间戳,然后获得两者之间的差值,将其除以使一天的整数为.2的秒,并将其打印为"2天后";然后将其与天数进行比较,即

// $diffdateAandNowtime is the difference between the uni time of dateA and nowtime
// $diffdateBandNowtime is the difference between the uni time of dateB and nowtime
$diffdateAandNowtime  = 4600; 
$diffdateBandNowtime  = 5600; 

$nowtime = 36000;

//time here is in seconds

if( $diffdateAandNowtime > $diffdateBandNowtime )
{
//run some code here
echo $diffdateAandNowtime;

}
elseif( $diffdateBandNowtime > $diffdateAandNowtime )
{

echo $diffdateAandNowtime;
}

请参阅此处获取setTimestamp((

相关内容

  • 没有找到相关文章