1

日付を指定して、曜日のリストを取得したい。同様に、「2013 年 6 月 11 日」が与えられた場合、リストを PHP 配列として取得したいので、助けていただければ幸いです。

4

3 に答える 3

1

DateTimeクラスを使用すると、これをより簡単に行うことができます:-

/**
 * Returns an array of date strings for the
 * week of the given date, starting on Monday
 *
 * @param String $date The date in question
 * @return array An array of date strings
 */
function daysInWeek($date)
{
    $result = array();
    $datetime = DateTime::createFromFormat('m/d/Y', $date);
    $interval = new DateInterval('P1D');
    if($datetime->format('D') !== 'Mon')$datetime->modify('last monday');
    $week = new DatePeriod($datetime, $interval, 6);
    foreach($week as $day){
        $result[] = $day->format('m/d/y');
    }
    return $result;
}

var_dump(daysInWeek("06/11/2013"));

戻り値:-

array (size=7)
  0 => string '06/10/13' (length=8)
  1 => string '06/11/13' (length=8)
  2 => string '06/12/13' (length=8)
  3 => string '06/13/13' (length=8)
  4 => string '06/14/13' (length=8)
  5 => string '06/15/13' (length=8)
  6 => string '06/16/13' (length=8)

これには、夏時間の変更などを処理できるという追加の利点があります。

于 2013-06-11T08:57:13.327 に答える