让我们假设我有以下内容:
$times = array();
for($month = $current_month; $month <= $end_month; $month++) {
$first_minute = mktime(0, 0, 0, $month, 1);
$last_minute = mktime(23, 59, 0, $month, date('t', $first_minute));
$times[$month] = array($first_minute, $last_minute);
}
我现在需要遍历所有$months
,但我不确定如何实现这一目标。
我尝试了foreach()
,但这要求我输入一个月的价值。我们假设价值不明确。
答案 0 :(得分:0)
你的意思是你需要遍历$times
吗?
一个简单的foreach
会......
foreach ($times as $month => $mins) {
// $month = the month
// $mins[0] = first minute
// $mins[1] = last minute
}
答案 1 :(得分:0)
可以尝试使用foreach()
这样的
foreach($times as $month=>$val){
echo 'Month: ' . $month . ' ';
echo 'First Minute: ' . $val[0] . ' ';
echo 'last Minute: ' . $val[1];
echo '<br />';
}
答案 2 :(得分:0)
也许您应该使用Datetime代替?
$end_month = 12;
$times = [];
$oneMonth = new DateInterval('P1M');
$dt = new Datetime('midnight first day of'); // 2014-12-01T00:00:00+00:00
while($dt->format('m') <= $end_month) {
$firstSecond = $dt->getTimestamp();
$dt->add($oneMonth); // 2015-01-01T00:00:00+00:00
$lastSecond = $dt->getTimestamp() -1;
$times[$dt->format('m')] = [$firstSecond, $lastSecond];
}
foreach ($times as $month => $seconds) {
// ...
}
但是你只能使用Datetime对象:
while($dt->format('m') <= $end_month) {
$times[] = clone $dt;
$dt->add($oneMonth);
}
foreach ($times as $month) {
echo $month->format('m'), // 12
$month->getTimestamp();
}