我想在循环中显示新月份时添加空格。 $item['date_expires']
在循环中显示为年,月和日(YYYY-MM-DD
)。
<?php
foreach($get_items AS $item) {
$current = date('m', strtotime($item['date_expires']));
if($current != date('m', strtotime($item['date_expires']))) {
$new_month = true;
$current = date('m', strtotime($item['date_expires']));
}
echo $item['date_expires'];
echo $new_month == true ? '<br><br>' : '';
}
?>
以下是现在的展示方式:
2018-11-27
2018-10-26
2018-09-25
2018-04-27
2018-04-09
2018-04-09
2018-04-05
2018-04-03
2018-04-02
2018-04-01
2018-04-01
2018-04-01
2018-04-01
2018-04-01
2018-04-01
2018-04-01
2018-03-30
2018-03-28
2018-03-28
2018-03-26
2018-03-26
2018-03-23
2018-03-21
2018-03-19
我希望它列出这样的日期:
2018-11-27
2018-10-26
2018-09-25
2018-04-27
2018-04-09
2018-04-09
2018-04-05
2018-04-03
2018-04-02
2018-04-01
2018-04-01
2018-04-01
2018-04-01
2018-04-01
2018-04-01
2018-04-01
2018-03-30
2018-03-28
2018-03-28
2018-03-26
2018-03-26
2018-03-23
2018-03-21
2018-03-19
我的代码中遗漏了什么?
答案 0 :(得分:2)
基本上是因为你每次围绕循环设置$current
作为你做的第一件事总是一样的。
查看代码中的评论
<?php
$current = null; // init $current
foreach($get_items AS $item) {
// This set $current to the current rows date
// every time round the loop so delete this line
//$current = date('m', strtotime($item['date_expires']));
if($current != date('m', strtotime($item['date_expires']))) {
// output the newline here
echo '<br>';
// now reset $current to this rows dates month
$current = date('m', strtotime($item['date_expires']));
}
echo $item['date_expires'];
// now done in the loop so delete this line
//echo $new_month == true ? '<br><br>' : '';
}
?>