【问题标题】:PHP date_sub. can't substract today and datePHP date_sub。不能减去今天和日期
【发布时间】:2016-09-12 15:40:20
【问题描述】:

我正在尝试输出今天和我输入的日期之间的天数,所以我遇到了错误:“警告:date_diff() 期望参数 2 是 DateTimeInterface”那么问题是什么?

<?php

$today=date("y-m-d");
$date=date_create("2016-09-16");

echo date_diff($date,$today);

?>

【问题讨论】:

  • rtfm: php.net/date 它返回一个STRING,而不是一个日期时间对象。
  • @MarcB 那么这是否意味着我必须将 $today 插入 strtotime() 函数?
  • rtfm: php.net/strtotime 它返回一个整数,而不是日期时间对象。您真的应该阅读文档。

标签: php date datediff


【解决方案1】:

您的问题在于,在使用 date_diff 时,您必须确保比较的对象是实际的日期对象。 date_diff 的返回类型也是 DateInterval 对象。您将其视为字符串。

$today = new DateTime(); // $today is a DateTime object
$date = new DateTime("2016-09-16"); // $date is also a DateTime object!
$diff =  date_diff($date,$today); // compare two objects of the same type FTW!

echo $diff->days; // $diff is a DateInterval object, so echo it's 'days' property.

// output: 3 (as of this writing)

延伸阅读:
http://php.net/manual/en/class.dateinterval.php
http://php.net/manual/en/class.datetime.php
http://php.net/manual/en/function.date-diff.php

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-11-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-27
    • 1970-01-01
    相关资源
    最近更新 更多