【问题标题】:Get interval from DatePeriod variable从 DatePeriod 变量中获取间隔
【发布时间】:2012-02-12 10:24:38
【问题描述】:

正如我从 DatePeriod 类的 PHP 手册页中了解到的那样,它旨在存储时间段。 IE。某个时间点的间隔意味着间隔的开始+可选的重复。

使用以下代码,我从今天开始创建 $dp 变量,长度为一个月

$start = new DateTime();
$interval = new DateInterval('P1M');
$end = clone $start;
$end->add($interval);    
$dp = new DatePeriod($start, $interval, $end);

使用以下代码,我正在打印所有期间的开始日期(在我的示例中只有一个原因没有重复):

foreach ($dp as $d)
    var_dump($d->d);

我的问题是如何从 $dp 变量中获取区间?

【问题讨论】:

  • 是我还是DatePeriod 的文档记录很差?我在文档中没有的示例中看到了 format 方法
  • @Pekka 是你。 DatePeriod 在迭代时返回 DateTimel 元素,因此您指的是 DateTime::format() ;)
  • @Gordon 啊哈,我现在明白了!谢谢。 :)

标签: php php-5.3


【解决方案1】:

你不能因为DatePeriod does not expose any properties。如果您需要 Interval,请从您的 $interval 变量中重用它。

【讨论】:

  • 很遗憾,因为现在 DatePeriod 只不过是我调用 DatePeriod 构造函数时自动生成的 DateTime 对象的集合(
  • @Boffin 是的,实际上就是这样 :)
  • @Boffin:为什么还需要更多?你希望什么?我从来没有尝试过这样做,所以我不知道它是否可能,但您可以尝试扩展类并覆盖构造函数以保存间隔并通过 getter 方法公开它。不过可能无法扩展它。
猜你喜欢
  • 2017-04-22
  • 2016-03-03
  • 2012-09-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-01-31
相关资源
最近更新 更多