【问题标题】:Getting date range grouped by month获取按月分组的日期范围
【发布时间】:2013-05-20 17:54:13
【问题描述】:

我有一个表单,用户可以在其中选择日期范围。例如,日期范围可以是:

$start = "5/1/2013";
$end = "6/5/2013";

我可以通过执行以下操作轻松掌握两者之间的天差:

$date1 = new DateTime($start);
$date2 = new DateTime($end);

$interval = $date1->diff($date2)

但是,如果我想构建一个包含每月分组的数组,其中每个数组将具有每个组的最小和最大日期。例如:

array(2) {
  [0]=>
  array(2) {
    [0]=>
    string(8) "5/1/2013"
    [1]=>
    string(9) "5/30/2013"
  }
  [1]=>
  array(2) {
    [0]=>
    string(8) "6/1/2013"
    [1]=>
    string(8) "6/5/2013"
  }
}

我怎样才能做到这一点?

【问题讨论】:

  • 这不是代码编写服务。展示您的尝试,我们将帮助您实现。

标签: php arrays date dynamic-arrays date-range


【解决方案1】:

使用$dateX->getTimestamp(),而不是在这两个时间戳之间以60*60*24*30(一个月)的间隔迭代,并使用date("d/m/Y", $time)得到格式化日期。

【讨论】:

    【解决方案2】:

    只需使用date 函数中的+1 month 字符串循环每个月,然后继续循环直到到达结束日期。您可以使用cal_days_in_montht 字符串作为date 来获取每个月的天数。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-03-02
      • 2013-03-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-07-16
      • 1970-01-01
      • 2013-11-04
      相关资源
      最近更新 更多