生成一周

时间:2014-05-16 13:52:56

标签: php date datetime

我想生成一个包含日期,月份,年份和日期的星期数组,如下所示:

  

星期一| 2014年12月5日
   星期二| 13-05-2014
  星期三| 14-05-2014
  星期四| 15-05-2014
    星期五| 16-05-2014
  星期六| 17-05-2014
    星期天| 18-05-2014

我希望从周一开始,就像从顶部开始的格式一样。

我尝试了这个,但周从星期一开始。

<?php $timestamp = time(); for ($day = 0 ; $day <= 7 ; $day++): ?>
  <tr>
    <th><?php echo date('D', $timestamp); ?></th>
    <th><?php echo date('d-m-Y', $timestamp); ?></th>
    <td><input type="checkbox" value="1" name="x"></td>
  </tr>
<?php $timestamp += 24 * 3600; endfor; ?>

我只需要生成一个星期,从当月和上个月开始,并将所有数据放入数组。

1 个答案:

答案 0 :(得分:7)

$this_monday = new DateTime('Monday this week');
$next_monday = new DateTime('Monday next week');
$interval    = new DateInterval('P1D');
$datePeriod  = new DatePeriod($this_monday, $interval, $next_monday);
foreach($datePeriod as $day) {
    printf("%s | %s<br>\n", $day->format('l'), $day->format('d-m-Y'));
}

Demo