【问题标题】:difference between two dates is not working in php [closed]两个日期之间的差异在php中不起作用[关闭]
【发布时间】:2021-05-27 02:57:16
【问题描述】:

我正在使用下面的代码来计算两个日期之间的年、月和日

$date1=date_create("2015-01-01");

$date2=date_create("2015-12-31");

$diff=date_diff($date1,$date2);

echo $diff->format("%y years");

echo $diff->format("%m month");

echo $diff->format("%d days");

这是 0 年 11 个月 29 天的结果。 但这应该是 1 年。

谁能指导我如何获得所需的结果?

【问题讨论】:

  • 这不是一整年的差异,因此结果是有意义的。您必须编写代码来检查这些值并根据需要进行四舍五入。
  • 一年有多长?有时是365天,有时是366天,所以你的问题有点不清楚。我不喜欢含糊不清的问题... ????
  • 我认为这个问题需要结束,因为解决方案需要从头开始编写代码,而不是帮助解决一个非常具体的问题。另外,即使有人选择这样做,要求也太模糊了。
  • 你能指导我吗,我怎样才能得到这个结果。

标签: php datediff date-difference


【解决方案1】:

您在同一年内创建了两个日期。一整年都没有过去。它是到结束日期,而不是结束日期。

您需要将结束日期设置为 2016 年 1 月 1 日,因为它不包括 2015 年 12 月 31 日这一整天;它只是评估到 2015-12-31 00:00:00.000000。

// add a day to the end date to ensure the final date is included in the comparison    
date_add($date2,date_interval_create_from_date_string("1 day")); 

【讨论】:

  • 这是一个答案吗?还是评论?感觉更像是评论。
  • 我同意。老实说,除了用 DateTime 重做所有事情之外,不知道还能如何回答它。我不太喜欢这个问题。
  • 但就帐户而言,它是一个财政年度,从 1 月 1 日到 12 月 31 日。
  • “1 月 1 日至 12 月 31 日”与“1 月 1 日至 12 月 31 日”不同
  • @JohnConde 编辑了答案以包含一个潜在的程序解决方案。
猜你喜欢
  • 1970-01-01
  • 2020-05-16
  • 1970-01-01
  • 1970-01-01
  • 2012-09-20
  • 2014-10-20
  • 2021-06-02
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多