[英]How to get a date difference as a negative number in PHP?
我在 php 中有这段代码来获取两个日期之间的差异。 我得到了差异,但它总是积极的。 当最后日期过去时,我需要差异为负。 我试过 format()、invert,但似乎没有任何效果。
function dias_transcurridos($fecha_i, $fecha_f)
{
$dias = (strtotime($fecha_i) - strtotime($fecha_f)) / 86400;
$dias = abs($dias);
$dias = floor($dias);
return $dias;
}
$hoy = date('Y-m-d');
然后我在循环中调用代码:
$elPlazo = dias_transcurridos($row["DateEnd"], $hoy);
echo "<td>" . $elPlazo . " Días</td>\n";
今天结束日期过后,如何将 $elPlazo(差额)设为负数?
问题是你的代码中有一个abs
。 abs
将取任何数字的绝对值(即删除负数)。 删除abs
将使您的函数返回负差异。
我还会考虑使用内置的 PHP DateTime和 DateInterval 对象,因为它们可以处理闰日之类的事情:
<?php
function dias_transcurridos($fecha_i, $fecha_f)
{
$i = new DateTime($fecha_i);
$f = new DateTime($fecha_f);
$interval = $i->diff($f);
return $interval->days;
}
$今天=新日期时间(); $date = new DateTime('2013-03-10');
$interval = $today->diff($date); echo $interval->format("%r%a");
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.