2次相差大于2小时如何比较
How to compare if the difference of 2 times is greater than 2 hours
我必须比较在不到 2 小时内减法的结果是否更大。我不知道究竟如何进行这种比较。我尝试了以下。对于第三个if是正确的,但是对于第一个和第二个结果是不正确的。
这是我的观点:
<?php
$transport= new DateTime($row->transportDate);
$max=new DateTime(max($forecast_array));
$interval = $transport->diff($max);
if($max->format('Y-m-d H:i:s') < $transport->format('Y-m-d H:i:s') && $interval->format('%h:%i:%s') >= '2:00:00' ) {
echo '<img src="<?= base_url();?>/assets/images/tick.png">';
}
if($max->format('Y-m-d H:i:s') < $transport->format('Y-m-d H:i:s') && $interval->format('%h:%i:%s') < '2:00:00' ) {
echo '<img src="<?= base_url();?>/assets/images/warning.png">';
}
if($max->format('Y-m-d H:i:s') > $transport->format('Y-m-d H:i:s')) {
echo '<img src="<?= base_url();?>/assets/images/forbidden.png">';
} ?>
已编辑:现在,我正在使用此代码:是否正确?
<?php
$transport = strtotime($row->transportDate);
$max = strtotime(max($forecast_array));
$interval = abs($max - $transport);
if($max < $transport && $interval >= 2 * 60 * 60 ) {
echo '<img src="<?= base_url();?>/assets/images/tick.png">';
}
$transport= new DateTime($row->transportDate);
$max=new DateTime(max($forecast_array));
$interval = $transport->diff($max);
if ($interval->h > 2) {
//
}
为了像您的示例一样简单地比较 date/time 差异,我建议不要使用 DateTime() class,而是使用简单的时间戳。
例如:
$transport = strtotime($row->transportDate); // strtotime parses the time if it is not a timestamp, if it already is just use as is, i.e. without strtotime()
$max = strtotime(max($forecast_array));
$intervall = abs($max - $transport);
// $intervall is now the difference in seconds therefore you can do this simple check:
if($interval >= 2 * 60 * 60){ // 2 hours à 60 minutes à 60 seconds
// interval > 2 hours
} else {
//...
}
我必须比较在不到 2 小时内减法的结果是否更大。我不知道究竟如何进行这种比较。我尝试了以下。对于第三个if是正确的,但是对于第一个和第二个结果是不正确的。
这是我的观点:
<?php
$transport= new DateTime($row->transportDate);
$max=new DateTime(max($forecast_array));
$interval = $transport->diff($max);
if($max->format('Y-m-d H:i:s') < $transport->format('Y-m-d H:i:s') && $interval->format('%h:%i:%s') >= '2:00:00' ) {
echo '<img src="<?= base_url();?>/assets/images/tick.png">';
}
if($max->format('Y-m-d H:i:s') < $transport->format('Y-m-d H:i:s') && $interval->format('%h:%i:%s') < '2:00:00' ) {
echo '<img src="<?= base_url();?>/assets/images/warning.png">';
}
if($max->format('Y-m-d H:i:s') > $transport->format('Y-m-d H:i:s')) {
echo '<img src="<?= base_url();?>/assets/images/forbidden.png">';
} ?>
<?php
$transport = strtotime($row->transportDate);
$max = strtotime(max($forecast_array));
$interval = abs($max - $transport);
if($max < $transport && $interval >= 2 * 60 * 60 ) {
echo '<img src="<?= base_url();?>/assets/images/tick.png">';
}
$transport= new DateTime($row->transportDate);
$max=new DateTime(max($forecast_array));
$interval = $transport->diff($max);
if ($interval->h > 2) {
//
}
为了像您的示例一样简单地比较 date/time 差异,我建议不要使用 DateTime() class,而是使用简单的时间戳。 例如:
$transport = strtotime($row->transportDate); // strtotime parses the time if it is not a timestamp, if it already is just use as is, i.e. without strtotime()
$max = strtotime(max($forecast_array));
$intervall = abs($max - $transport);
// $intervall is now the difference in seconds therefore you can do this simple check:
if($interval >= 2 * 60 * 60){ // 2 hours à 60 minutes à 60 seconds
// interval > 2 hours
} else {
//...
}