http://d.hatena.ne.jp/palu0707/20131030/1383143532
とりあえずgetDay()を実行してみる。
Notice: Undefined variable: lenght in C:\xampp\test.php on line 33
Notice: Undefined offset: 6 in C:\xampp\test.php on line 50
Notice: Undefined offset: 5 in C:\xampp\test.php on line 50
Notice: Undefined offset: 4 in C:\xampp\test.php on line 50
Notice: Undefined offset: 3 in C:\xampp\test.php on line 50
Notice: Undefined offset: 2 in C:\xampp\test.php on line 50
Notice: Undefined offset: 1 in C:\xampp\test.php on line 50
これを実行したのは2013/11/06。
月またぎの処理に異常があるようです。
修正しましょう。
というか、こういう処理はビルトインに任せるべきで、わざわざ自力でやる意味は全くありません。
閏年なんてこちら側では一切考慮する必要はなく、DateTimeがよしなに処理してくれます。
返り値はDatePeriodなので、返ってきた側での使い方も非常に簡単です。
とりあえずgetDay()を実行してみる。
Notice: Undefined variable: lenght in C:\xampp\test.php on line 33
Notice: Undefined offset: 6 in C:\xampp\test.php on line 50
Notice: Undefined offset: 5 in C:\xampp\test.php on line 50
Notice: Undefined offset: 4 in C:\xampp\test.php on line 50
Notice: Undefined offset: 3 in C:\xampp\test.php on line 50
Notice: Undefined offset: 2 in C:\xampp\test.php on line 50
Notice: Undefined offset: 1 in C:\xampp\test.php on line 50
array(3) { ["year"]=> string(4) "2013" ["month"]=> array(2) { [0]=> int(10) [1]=> string(2) "11" } ["day"]=> array(7) { [0]=> int(6) [6]=> int(31) [5]=> int(31) [4]=> int(31) [3]=> int(31) [2]=> int(31) [1]=> int(31) } }line 50はforの行です。
これを実行したのは2013/11/06。
月またぎの処理に異常があるようです。
修正しましょう。
というか、こういう処理はビルトインに任せるべきで、わざわざ自力でやる意味は全くありません。
<?php function getDay($year = NULL, $month = NULL, $day = NULL, $length = NULL) { if(!$year) {$year = date('Y');} if(!$month) {$month = date('m');} if(!$day) {$day = date('d');} if(!$length){$length = 6;} // 終了日 $end = new DateTime($year.'-'.$month.'-'.$day, new DateTimeZone('Asia/Tokyo')); // 開始日 $start = clone $end; $start->modify($length . ' days ago'); // DatePeriodにして返す return new DatePeriod($start, new DateInterval('P1D'), $end); } // 使い方 $datePeriod = getDay(); foreach($datePeriod as $key=>$val){ print(($key+1) . '日目:' . $val->format('Y年m月d日')); }跡形が無くなってしまった。
閏年なんてこちら側では一切考慮する必要はなく、DateTimeがよしなに処理してくれます。
返り値はDatePeriodなので、返ってきた側での使い方も非常に簡単です。
PR