PHP - 天数中2个日期之间的差异

时间:2015-10-28 13:29:19

标签: php date datediff

我有以下内容:

$dateStart = get_post_meta( get_the_ID(), 'startdate' , true);
$dateStart = DateTime::createFromFormat('d/m/Y h:i:s', $dateStart);
$dStart = $dateStart->format('d/m/y');true);
$dEnd = date("d/m/y");
echo $dStart .'-'.$dEnd;

这会输出12/06/15-28/10/15,但就我而言,我无法弄清楚如何在两个日期之间获得天数差异。

有什么建议吗?我尝试过一些东西,但每次都会出错。

由于

4 个答案:

答案 0 :(得分:1)

我发现计算日期php和日期DateTime $a之间的最安全的方法是依靠午夜的时间戳记:

DateTime $b

对我来说很好:)

注意:我使用硬编码值protected static function diffDays(DateTime $a, DateTime $b) { return round( ($a->setTime(0, 0, 0)->getTimestamp() - $b->setTime(0, 0, 0)->getTimestamp()) / 86400 // 60 * 60 * 24 = 86400s in 24h ); } 以减少计算86400的无用处理时间

答案 1 :(得分:0)

使用此(工作示例)

"dom": "<'row'<'col-sm-6'l><'col-sm-6'f>>" +
       "<'row'<'col-sm-12'tr>>" +
       "<'row'<'col-sm-5'i><'col-sm-7'p>>"

答案 2 :(得分:-1)

使用 DateTime :: diff - http://php.net/manual/en/datetime.diff.php

$dateStart = DateTime::createFromFormat('d/m/Y h:i:s', $dateStart);
$dateEnd = new DateTime();
$difference = $dateStart->diff($dateEnd);

另请注意,现在不假设将结尾传递给diff()。所以这也适用于你的特定例子:

$dateStart = DateTime::createFromFormat('d/m/Y h:i:s', $dateStart);
$difference = $dateStart->diff();

答案 3 :(得分:-1)

$daysBefore = round(abs(strtotime(Date("l, d F Y"))-strtotime($dateStart))/86400);
$daysAfter =  round(abs(strtotime(Date("l, d F Y"))-strtotime($dateEnd))/86400);

这似乎是我能让它工作的唯一方式