【问题标题】:Days between date do not working... [closed]日期之间的天数不起作用... [关闭]
【发布时间】:2016-01-06 17:05:48
【问题描述】:

您好,我编写了 php 代码来计算两个日期之间的天数。你能告诉我我哪里出错了吗?

$today = date("Y-m-d");
$date = "2015-03-08";
$temp = date_create($date);
$datediff = $today - $temp;
$days = floor($datediff/(60*60*24));

【问题讨论】:

  • 运行代码时出了什么问题?
  • 当我将今天设置为 2016-01-06 并将第二个日期设置为 2016-01-01 时,输出为: datediff: 2015 days: 0
  • 我知道几周前我也尝试过这样做。我最终用减法计算。 $datediff = abs($date1 - $today)
  • 对不起,还是不行... 6-5 和|5-6| 有什么区别? ?;)

标签: php date between days


【解决方案1】:

你可以使用phps DateTime 对象:

$today = new DateTime(); // Passing no argument defaults to today
$newYear= new DateTime('2016-01-01');
$interval = $today->diff($newYear);
$diff = $interval->format('%a');

echo $diff;

输出

5

如果你想有一个签名号码然后使用这个

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

输出

-5

所以你知道 $newYear 是在 $today 之前 5 天

【讨论】:

  • 好的,它可能会起作用,如何在 phps DateTime 对象中将今天返回到 $today 变量?
  • 为您调整了代码。
  • 好的,我认为它有效,但如何将对象数据转换为字符串?
  • 使用$interval->format() 和手册中解释的任何选项php.net/manual/de/dateinterval.format.php
  • 效果很好!请告诉我 $diff 是 int 或 string 或者对象,因为它只返回 "5" :)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-05-27
  • 1970-01-01
  • 1970-01-01
  • 2019-12-17
  • 2021-03-11
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多