【问题标题】:Form Field type is Date DateDiff表单字段类型为 Date DateDiff
【发布时间】:2023-03-20 13:43:01
【问题描述】:

我有一个包含开始和结束日期字段的表单。用户插入日期并运行报告。

我试图找出这些日期之间的总天数。

目前表单字段设置类型=日期。日期格式为 01-01-2017。

我已经尝试了很多,但这似乎让我非常接近。

$end_date = date("m-d-y", strtotime($endd));
$start_date = date("m-d-y", strtotime($startd));

$reportdays = ($syour_date - $eyour_date);

任何帮助将不胜感激。

【问题讨论】:

标签: php date datediff


【解决方案1】:

日期函数用于格式化打印日期。它不能用于减去两个日期。您基本上是在尝试减去两个日期字符串。 '2016-12-12' - '2017-01-12' == 'invalid!'

您应该使用 DateTime:::diff() 函数来获取天数的差异,如下所示:

$end_date = new Date($endd);
$start_date = new Date($startd);
$interval = $end_date->diff($start_date);
$reportdays = $interval->format('%d');

您可以在此处阅读更多相关信息: http://php.net/manual/en/datetime.diff.php

【讨论】:

  • 我试过这个,但我收到“致命错误:未捕获的错误:找不到类 'Date'”
  • 我明白了。不得不使用 DateTime() 而不是 Date()。感谢您的帮助
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-06-11
  • 1970-01-01
  • 2016-11-29
  • 1970-01-01
  • 1970-01-01
  • 2014-04-15
  • 2019-08-08
相关资源
最近更新 更多