猿问

PHP date_diff() 使用字符串

我有 2 个日期,它们是通过连接 3 个变量创建的。


    $StartDate = $m . '/' . $dayy . '/' . $y;

    $EndDate = $m . '/' . $dayy . '/' . $y;


    $Interval = date_diff($StartDate , $EndDate)

    $NumOfDays = $interval->format('%a');

    $NumOfDays++;

我收到 date_diff() 期望参数 1 为 DateTimeInterface 的错误。


我搜索了这个网站,发现了一些不起作用的东西。


    $date = date_create_from_format('d/m/y', $StartOfWeek);

    $a = $date->getTimestamp(); 


    $date = date_create_from_format('d/m/y', $EndOfWeek);

    $b = $date->getTimestamp();


    $interval = date_diff($a, $b);

    $NumOfDays = $interval->format('%a');

我收到错误:未捕获错误:调用布尔值上的成员函数 getTimestamp()


如何正确地将字符串类型的 2 个日期转换为 DateTime?


拉风的咖菲猫
浏览 100回答 1
1回答

慕哥9229398

只需使用您的日期字符串来创建DateTime()对象。您不需要使用date_create_from_format(),因为您的日期格式被 PHP 识别为标准日期格式。$m = 5;$dayy = 20;$y = 2020;$m2 = 4;$dayy2 = 18;$y2 = 2020;$StartDate = new DateTime($m . '/' . $dayy . '/' . $y);$EndDate = new DateTime($m2 . '/' . $dayy2 . '/' . $y2);$interval = date_diff($StartDate , $EndDate);$NumOfDays = $interval->format('%a');echo $NumOfDays;
随时随地看视频慕课网APP
我要回答