繁体   English   中英

如何在PHP中将日期差异作为负数?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM