【问题标题】:Sum values that date_diff function returnsdate_diff 函数返回的总和值
【发布时间】:2019-08-07 00:03:20
【问题描述】:

我需要对 date_diff 函数返回的所有值求和。

我尝试使用 array_sum(),但结果为 0(因为它是空的)。结果应该是 14。

$sql = "SELECT start_date, end_date FROM events";
  $result = $conn->query($sql);
  if ($result->num_rows > 0) {

   while($row = $result->fetch_assoc()) {
     $row["start_date"];   
     $row["end_date"];
     $start = date_create($row["start_date"]);
     $end = date_create($row["end_date"]);
     $fin=date_add($end, date_interval_create_from_date_string('1 days'));

     $diff=date_diff($start, $fin);
      echo $diff->format('%d days');

}

我提供的代码有效,但是当我添加 array_sum() 时,它总是显示 0。

【问题讨论】:

  • 请添加代码显示您如何使用array_sum()
  • @catcon 我尝试了很多方法。我通常得到 0 作为结果(空数组)。

标签: php datetime datediff dateinterval array-sum


【解决方案1】:

您可以创建一个基础DateTime,并将所有date_diff 添加到其中。然后通过减去原始基准日期时间来计算总和日期差异。

$base_time = new DateTime();
$time = clone $base_time;
// begin foreach loop
...
$diff=date_diff($start, $fin);
$time->add($diff);
...
// end foreach loop
$sum_of_diff = $time->diff($base_time);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-12-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多