使用PHP循环日期

shi*_*juo 8 php loops date

我试图用PHP循环日期.目前我的代码卡在一个重复110307的循环中.我需要日期格式为yymmdd.这是我试图使用的:

<?php
    $check_date = '100227';
    $end_date = '100324';

    while($check_date != $end_date){
        $check_date = date("ymd", strtotime("+1 day", strtotime($check_date)));
        echo $check_date . '<br>';  
    }
?>
Run Code Online (Sandbox Code Playgroud)

Pau*_*ber 8

尝试使用unix时间戳并每次添加86400.这比打电话要快strtotime().您可以在线查找时间戳转换.

<?php
    $check_date = 1267228800; // '2010-02-27';
    $end_date = 1269388800; // '2010-03-24';

    while($check_date != $end_date){
        $check_date += 86400;
        echo date("Ymd", $check_date) . '<br>';  
    }
?>
Run Code Online (Sandbox Code Playgroud)


Ano*_*mie 5

strtotime将"100227"解释为今天10:02:27,而不是2010-02-27.所以在第一步之后,$check_date(今天)是"110307".在所有后续步骤中,"110307"再次被解释为今天的时间,$check_date再次给出"110307".

迭代日期的一个巧妙方法是利用mktime标准化日期的能力,如下所示:

$date_arr = array(27,2,2010);
$end_date = "100324";
do {
    $check_date = gmdate('ymd', gmmktime(0,0,0,$date_arr[1],$date_arr[0]++,$date_arr[2]));
    echo $check_date."\n";
} while($end_date!=$check_date);
Run Code Online (Sandbox Code Playgroud)