1

我想创建一个这样的表...

 Oct-01 | Oct-02 | Oct-03 | Oct-04 | etc etc

使用现在的任何月份。

我正在使用它来获得第一天...

$first = date('01-m-Y',strtotime('this month'));

我怎样才能按这个月的天数增加这个?

使用cal_days_in_month(CAL_GREGORIAN, date(j), 2013)

但是如何增加第一天。我尝试在 中使用“+1 天” strtotime,但什么也没发生。

有任何想法吗?

4

3 回答 3

2

DateTime这里可以使用PHP 的类。您不需要使用cal_days_in_month函数来计算一个月中的天数——DateTime自动处理它。而且它更干净,支持范围广泛的日期。

就是这样:

$start  = new DateTime('first day of this month');
$end    = new DateTime('first day of this month + 1 month');
$period = new DatePeriod($start, new DateInterval('P1D'), $end);

foreach($period as $day){
  echo $day->format('M-d')."<br/>";
}

演示!

于 2013-10-12T05:17:35.377 回答
1

我更喜欢使用 DateTime 对象:

$date = new DateTime();
$date->modify('first day of this month');
$days = array();
for($i = 1; $i <= $date->format('t'); $i++){
    $days[] = $date->format('M-d');
    $date->modify('+1 day');
 }

您还可以将整个日期对象添加到数组中,让您以后可以灵活地使用它,但是您想要。

于 2013-10-12T05:31:00.387 回答
0
<?php
$days = array();
$maxDay = cal_days_in_month(CAL_GREGORIAN, date('j'), date('Y'));
for($i = 1; $i<$maxDay; ++$i) {
    $days[] = sprintf(date('M')."-%1$02d", $i);
}
echo "<pre>";
var_dump($days);

现在你可以用 $days 数组做任何你喜欢的事情......

http://phpfiddle.org/lite/code/fd1-1r2

于 2013-10-12T05:13:26.293 回答