※ ChatGPTを利用し、要約された質問です(原文:選択日と終了日を配列で取得したい)
phpで配列に選択日と終了日を取得する方法
このQ&Aのポイント
PHPで配列に選択日と終了日を取得する方法を説明します。開始日から終了日までの日付を配列に格納するため、以下のコードを使用します。ただし、2014/10/26が二度表示される問題が発生しています。
開始日から終了日までの日付を配列に格納するために、PHPのmktime()関数を使用します。まず、開始日と終了日をUnixタイムスタンプに変換し、1日ごとに繰り返し処理を行い、それぞれの日付を配列に追加します。
しかし、このコードではなぜか2014/10/26が二度表示されてしまいます。これは、終了日を1日進める必要があるためです。終了日をdate()関数を使用して1日進めるように修正すると、問題が解決します。修正後のコードは以下の通りです。
phpでの質問です、初歩的で申し訳ないです。。
例えば。。
$startDay = "2014/10/8";
$endDay = "2014/11/26";
と開始日と終了日までの日にちを配列で取得したいと考えています。
自分的に調べてやってみたのが以下のソースになります。
$startDay = "2014/10/8";
$endDay = "2014/11/26";
//$endDay = date( "Y/m/d" , strtotime( $endDay ) ); // +1Day
// 開始日から終了日までを配列で取得
list( $sYear , $sMonth , $sDay ) = explode( "/" , $startDay );
list( $eYear , $eMonth , $eDay ) = explode( "/" , $endDay );
$sUnix = mktime( 0 , 0 , 0 , $sMonth , $sDay , $sYear );
$eUnix = mktime( 0 , 0 , 0 , $eMonth , $eDay , $eYear );
$oneDay = 86400;
for( $i = $sUnix; $i <= $eUnix; $i += $oneDay ){
$keyDate[] = date("Y/m/j",$i);
}
var_dump($keyDate);
これでほぼほぼ取得できているんですが、
array(50) {
[0]=>
string(9) "2014/10/8"
[1]=>
string(9) "2014/10/9"
[2]=>
string(10) "2014/10/10"
[3]=>
string(10) "2014/10/11"
[4]=>
string(10) "2014/10/12"
[5]=>
string(10) "2014/10/13"
[6]=>
string(10) "2014/10/14"
[7]=>
string(10) "2014/10/15"
[8]=>
string(10) "2014/10/16"
[9]=>
string(10) "2014/10/17"
[10]=>
string(10) "2014/10/18"
[11]=>
string(10) "2014/10/19"
[12]=>
string(10) "2014/10/20"
[13]=>
string(10) "2014/10/21"
[14]=>
string(10) "2014/10/22"
[15]=>
string(10) "2014/10/23"
[16]=>
string(10) "2014/10/24"
[17]=>
string(10) "2014/10/25"
[18]=>
string(10) "2014/10/26"
[19]=>
string(10) "2014/10/26"
[20]=>
string(10) "2014/10/27"
[21]=>
string(10) "2014/10/28"
[22]=>
string(10) "2014/10/29"
[23]=>
string(10) "2014/10/30"
[24]=>
string(10) "2014/10/31"
[25]=>
string(9) "2014/11/1"
[26]=>
string(9) "2014/11/2"
[27]=>
string(9) "2014/11/3"
[28]=>
string(9) "2014/11/4"
[29]=>
string(9) "2014/11/5"
[30]=>
string(9) "2014/11/6"
[31]=>
string(9) "2014/11/7"
[32]=>
string(9) "2014/11/8"
[33]=>
string(9) "2014/11/9"
[34]=>
string(10) "2014/11/10"
[35]=>
string(10) "2014/11/11"
[36]=>
string(10) "2014/11/12"
[37]=>
string(10) "2014/11/13"
[38]=>
string(10) "2014/11/14"
[39]=>
string(10) "2014/11/15"
[40]=>
string(10) "2014/11/16"
[41]=>
string(10) "2014/11/17"
[42]=>
string(10) "2014/11/18"
[43]=>
string(10) "2014/11/19"
[44]=>
string(10) "2014/11/20"
[45]=>
string(10) "2014/11/21"
[46]=>
string(10) "2014/11/22"
[47]=>
string(10) "2014/11/23"
[48]=>
string(10) "2014/11/24"
[49]=>
string(10) "2014/11/25"
}
なぜか、2014/10/26が二つ出現してしまいます。
ソースを良く見ても原因が分からないのと、他の方法があればご教授いただきたいです。
よろしくお願いいたします。
お礼
有難うございます! 無事直りました!有難うございます! ベストアンサーに選ばせていただきます!