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