php - 在 PHP 中循环遍历 Unix 时间戳范围内的所有日期

标签 php loops strtotime

假设你有两个这样的 Unix 时间戳:

$startDate = 1330581600;
$endDate = 1333170000;

我想遍历该范围内的每一天并输出如下内容:

Start Loop
   Day Time Stamp: [Timestamp for the day within that loop]
End Loop

我已经尝试寻找某种类型的函数来执行此操作,但我不确定它是否可行。

最佳答案

因为我喜欢 DateTime、DateInterval 和 DatePeriod,所以这是我的解决方案:

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

$start->setTimestamp(1330581600);
$end->setTimestamp(1333170000);

$period = new DatePeriod($start, new DateInterval('P1D'), $end);

foreach($period as $dt) {
  echo $dt->format('Y-m-d');
  echo PHP_EOL;
}

乍一看这似乎令人困惑,但这是一种非常合乎逻辑的方法。

DatePeriod您正在定义间隔为 1 天的周期的开始和结束(在 DateInterval 中查找格式),然后您可以对其进行迭代。
最后,在每次迭代中你都会得到一个 DateTime object。您可以在其上使用 DateTime::format()

关于php - 在 PHP 中循环遍历 Unix 时间戳范围内的所有日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10196915/

相关文章:

php - Google 日历 API V3 更新事件

javascript - 反向 while 循环如何知道何时在 JavaScript 中停止?

c++ - 遍历 C++ 映射时的奇怪行为

php 检查有效日期,奇怪的日期转换

PHP strtotime() 将日期设置为默认值

php - Select 内的 SQL Select 不接受 WHERE x LIKE %y%

php - SELECT 查询的 PDO 语法错误

php - Guzzle HTTP : POST Request magically turns to GET request giving me "Method Not Allowed"

python - 从 for 循环内部保存数据帧

php - 给定一个 Unix 时间戳,如何获得那一天的开始和结束?