两个日期之间的天数在PHP中不起作用

时间:2019-11-09 18:12:48

标签: php datetime

我需要计算两个日期之间的日期(格式YYYYMMDD)

我使用了两个测试日期2020-01-20和2020-02-20

$enddate = "20200220";
$startdate = "20200120";
$s = new DateTime($enddate);
$e = new DateTime($startdate);
$diff = $s->diff($e);
echo "days: ".$diff->d;

结果是0,而不是一个月的天数

  

天:0

我知道日期作为字符串可能不明确,因此我也尝试通过以下方式指定格式:

$enddate = "20200220";
$startdate = "20200120";
$s = DateTime::createFromFormat('Ymd', $startdate);
$e = DateTime::createFromFormat('Ymd', $enddate);
$diff = $s->diff($e);
echo "days: ".$diff->d; 

仍然为0

  

天:0

1 个答案:

答案 0 :(得分:-1)

您可以使用strtotime

<?php

// strtotime converts any string date format to unix time

$date1 = "2020-01-20";
$date2 = "2020-02-20";

$seconds_in_a_day = 86400;


$diff = (strtotime($date2) - strtotime($date1))/$seconds_in_a_day;

echo $diff; // output 31