如何制作for循环一个月

时间:2014-11-02 22:10:51

标签: php date for-loop pdo

我想在php pdo中创建循环,它会创建一个json数据,但循环必须持续一个月。

我写这个:

 try {

       for ($i=1; $i<=30; $i++) {

    $temp = array();
    $temp['ID'] = $i; 

    $output['data'][] = $temp;
}
$jsonTable = json_encode($output);

所以这会让我回归30行,为期30天。现在我想创建一个范围等,让我从2014年2月1日到2014年2月28日/ 29.02.2014的其他时间排成一排...... 2月...

如何实现这一目标?一些想法?

1 个答案:

答案 0 :(得分:1)

如果您无法自己阅读本手册:

$dateString = '01.02.2014';
$dt = new DateTime($dateString);
$daysInMonth = $dt->format('t');

将为您提供$dateString

中指定月份的天数

循环一个月内的一种方式:

$dateString = '01.02.2014';
$startDate = new DateTime($dateString);

$period = new DateInterval('P1M');
$endDate = clone $startDate;
$endDate->add($period);

$dayPeriod = new DateInterval('P1D');
while ($startDate < $endDate) {
    echo $startDate->format('Y-m-d'), PHP_EOL;
    $startDate->add($dayPeriod);
}

获取一个月的日期列表的另一种方法

$dateString = '01.02.2014';
$startDate = new DateTime($dateString);

$period = new DateInterval('P1M');
$endDate = clone $startDate;
$endDate->add($period);

$interval = new DateInterval('P1D');
$daterange = new DatePeriod($startDate, $interval ,$endDate);

foreach($daterange as $date){
    echo $date->format("Y-m-d") . PHP_EOL;
}