3

PHPで2つの日付の間の日の名前を取得するにはどうすればよいですか?

入力:

開始日:2013年1月1
日終了日:2013年5月1日

出力:

火曜日
水曜日
木曜日
金曜日
土曜日

試したコード

$from_date ='01-01-2013';
$to_date ='05-01-2013';

$number_of_days = count_days(strtotime($from_date),strtotime($to_date));

for($i = 1; $i<=$number_of_days; $i++)
{
    $day = Date('l',mktime(0,0,0,date('m'),date('d')+$i,date('y')));
    echo "<br>".$day;       
}


function count_days( $a, $b )
{       
    $gd_a = getdate( $a );
    $gd_b = getdate( $b );
    
    $a_new = mktime( 12, 0, 0, $gd_a['mon'], $gd_a['mday'], $gd_a['year'] );
    $b_new = mktime( 12, 0, 0, $gd_b['mon'], $gd_b['mday'], $gd_b['year'] );
    
    return round( abs( $a_new - $b_new ) / 86400 );
}

2つの日付の間の特定の日の検索日PHPの投稿を見ました

しかし、結果が得られません。
助けてください

4

3 に答える 3

4

クラスを使用するDateTimeと、はるかに簡単になります。

$from_date ='01-01-2013';
$to_date ='05-01-2013';

$from_date = new DateTime($from_date);
$to_date = new DateTime($to_date);

for ($date = $from_date; $date <= $to_date; $date->modify('+1 day')) {
  echo $date->format('l') . "\n";
}
于 2013-01-31T06:33:44.180 に答える
3
$from_date ='01-01-2013';
$to_date ='05-01-2013';
$start = strtotime($from_date);
$end = strtotime($to_date);
$day = (24*60*60);
for($i=$start; $i<= $end; $i+=86400)
    echo date('l', $i);
于 2013-01-31T06:36:42.590 に答える
1
<?php
    function printDays($from, $to) {
        $from_date=strtotime($from);
        $to_date=strtotime($to);
        $current=$from_date;
        while($current<=$to_date) {
            $days[]=date('l', $current);
            $current=$current+86400;
        }

        foreach($days as $key=> $day) {
            echo $day."\n";
        }
    }
    $from_date ='01-01-2013';
    $to_date ='05-01-2013';
    printDays($from_date, $to_date);
?>

指定された日付(両端を含む)の間で毎日ループし、date関数を使用して、対応する日を配列に追加します。配列と多田を印刷してください!完了です!

于 2013-01-31T06:41:21.683 に答える