• ベストアンサー

これを簡単にするには

$hi2=date("m/d" , strtotime("$hi -1 day")); $hi3=date("m/d" , strtotime("$hi -2 day")); $hi4=date("m/d" , strtotime("$hi -3 day")); $hi5=date("m/d" , strtotime("$hi -4 day")); これを、もっと簡単にするにはwhlreするんですか??

質問者が選んだベストアンサー

  • ベストアンサー
  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.4

役に立たない違反書き込みする粘着アンチが何をいっても響かないねぇ。 腹の足しにもならんポイントもらってうれしいわけもなかろうて さて配列でやるなら以下のいずれかのフローがよいかと <?PHP $hi="2011/12/09"; for($i=2;$i<=5;$i++){ $hi_array[$i]=date("m/d" , strtotime("$hi -".($i - 1)." day")); } print_r($hi_array); ?> <?PHP $hi=strtotime("2011/12/09"); for($i=2;$i<=5;$i++){ $hi_array[$i]=date("m/d" , $hi - 86400*($i-1)); } print_r($hi_array); ?>

drmada
質問者

お礼

いつもありがとうございます。試してみます。アンチがしつこくて申し訳ありません。

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (2)

  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.2

>普通の配列 「普通の変数」といいたかった

全文を見る
すると、全ての回答が全文表示されます。
  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.1

なぜ配列をつかわないか理解できないですが、 どうしても普通の配列でいきたいならこんな感じ <?PHP $hi="2011/12/09"; for($i=2;$i<=5;$i++){ ${"hi".$i}=date("m/d" , strtotime("$hi -".($i-1)." day")); } print "h2=".$hi2."<br>"; print "h3=".$hi3."<br>"; print "h4=".$hi4."<br>"; print "h5=".$hi5."<br>"; ?>

drmada
質問者

お礼

配列でする場合は、foreach() を使ったらいいですか??

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • 一週間前のゼロ時取得方法

    こんにちは、 一週間前のゼロ時から取得したいのですが 今日が2012/12/23日の場合 $oldday = strtotime(date('Y-m-d',strtotime("-7 day")));だと 2012/12/16 08:00:00 と8時からでゼロ時になりません。 2012/12/16 00:00:00 としたいのですが 何か方法ありますでしょうか?

    • ベストアンサー
    • PHP
  • 土日をカウントしない日付表示

    PHPで日付の表示方法で困っています。 今日から3日後の日付を表示するときに土日を含まないで表示させたいのです。本日12日ですので17日が表示されるようなPHPをご教授いただきたいです。 <?php echo date("m月d日",strtotime("+3 day"));?> だと単純に3日後ですし、 <?PHP $day = 60 * 60 * 24; $t=mktime(0,0,0,date("m"),date("d")+3,date("y")); if(date("w",$t)==6) $t += $day * 2; if(date("w",$t)==0) $t += $day ; echo date("m月d日",$t); ?> だとしても土日をカウントしているので、思うような結果に至っておりません。 よろしくお願いします。

    • ベストアンサー
    • PHP
  • PHPで現在日から3日以内と7やると strtot

    PHPで現在日から3日以内と7やると strtotime(date('Y/m/d 00:00:00') . '-3day'); でできますか?

    • ベストアンサー
    • PHP
  • php storetotime 最終日の前日

    たとえば、2か月前の最終日を求めるには date('Ymd', strtotime( 'last day of -2 month' )) で求められますが、その前日を求めるにはどうすれば良いでしょうか? date('Ymd', strtotime( 'last -2 day of -2 month' ))

    • ベストアンサー
    • PHP
  • PHPでn日後を計算したい

    今日から7日後は◯月◯日◯曜日という計算をしたいのですが、 土日祝日を除く方法で詰まっています。 <?=date("Y-m-d",strtotime("+7 day"));?> 仕上がり日は◯日、といった表示をしたいので、 土日祝日を除く営業日をカウントしたいのです。 難しいでしょうか?? 汗 宜しくお願い申し上げます。

    • ベストアンサー
    • PHP
  • 月曜日から始まる週間カレンダーの作り方

    いつもありがとうございます。 下記のようなコードを書いて1週間のカレンダーを作っていますが、 どうしても日曜日からの表示になります。 この表示を月曜日から始まり、日曜日で終わるカレンダーにならないものか考えるのですが、どうもうまくいきません。 よきアドバイスをお願いします。 <? //来週・前週の---日曜日----をgetした値 $get_sunday = htmlspecialchars($_GET["get_sunday"]); $entry_day = htmlspecialchars($_GET["entry_day"]); //変数の値の識別カレンダー表示 //get_sunday (来週・前週)の値がgetされていたら if($get_sunday!=""){ //getされた日曜日の日付 $mm = date("m",strtotime($get_sunday)); $dd = date("d",strtotime($get_sunday)); $yyyy = date("Y",strtotime($get_sunday)); //getされた日曜日の日付(日のみ) $sunday_num = $dd; //getされた日曜日の日付(年月日) $kyujin_day = date("Y-m-d",mktime(0,0,0,$mm,$dd,$yyyy)); } // ================================================= //変数の値の識別           カレンダー表示 //entry_day (指定した日)の値をgetされたら if($entry_day!=""){ $mm = date("m",strtotime($entry_day)); $dd = date("d",strtotime($entry_day)); $yyyy = date("Y",strtotime($entry_day)); //$week_numに今日の曜日ナンバーを代入(mktime(0,0,0,今日の月,今日の日,今日の年) //日0・月1・火2・水3・木4・金5・土6 $week_num = date("w", mktime(0,0,0,$mm,$dd,$yyyy)); //entry_dayの値 $kyujin_day = date("Y-m-d",mktime(0,0,0,$mm,$dd,$yyyy)); //日曜日の日付(日のみ) $sunday_num = $dd - $week_num; } // ================================================= //変数の値がない場合は本日の日付の取得 カレンダー表示 if($get_sunday=="" and $entry_day==""){ $mm = date("m",time()); $dd = date("d",time()); $yyyy = date("Y",time()); //$week_numに今日の曜日ナンバーを代入(mktime(0,0,0,今日の月,今日の日,今日の年) $week_num = date("w", mktime(0,0,0,$mm,$dd,$yyyy)); $kyujin_day = date("Y-m-d",mktime(0,0,0,$mm,$dd,$yyyy)); //日曜日の日付(日のみ) $sunday_num = $dd - $week_num; } //前週、次週に日曜日の日付を取得    カレンダー表示 $sunday_last = $sunday_num - 7; $sunday_next = $sunday_num + 7; ?> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS"> <title>レンダー画面</title> </head> <body> <table> <tr> <td></td> <td bgcolor="#00FFFF">日</td> <td bgcolor="#00FFFF">月</td> <td bgcolor="#00FFFF">火</td> <td bgcolor="#00FFFF">水</td> <td bgcolor="#00FFFF">木</td> <td bgcolor="#00FFFF">金</td> <td bgcolor="#00FFFF">土</td> <td></td> </tr> <tr> <form method="get" name="form2"action="test2.php"> <td> <input type="hidden" name="get_sunday" value= "<?php echo date("Y-m-d", mktime(0, 0, 0, $mm, $sunday_last, $yyyy)); ?>"> <input type="submit" name="Submit2" value="前週へ"> </td> </form> <? //週カレンダー(前週ボタン作成)ここまで //週カレンダー日付を入れる $w2 = $sunday_num; $select_day = date("Y-m-d", mktime(0, 0, 0, $mm, $w2, $yyyy)); $i = 0; while($i < 7) { //日曜日から順に日付を$select_dayに入れていく ?> <td bgcolor="#CCFFFF"><? echo date("m月d日", mktime(0, 0, 0, $mm, $w2+$i, $yyyy)) ?></td> <? // 日付けを一つ繰り上げる $i++; } ?> <form method="get" name="form2" action="test2.php"> <td> <input type="hidden" name="get_sunday" value= "<?php echo date("Y-m-d", mktime(0, 0, 0, $mm, $sunday_next, $yyyy)); ?>"> <input type="submit" name="Submit" value="次週へ"> </td> </form> </table> </body> </html>

    • 締切済み
    • PHP
  • Cronでdate()を実行して一部の拾えない時間

    PHPを勉強中の者です。 タイトルの通りですが、date()をCronで実行しても空白の時間ができてしまい困っています。 具体的には例えば、var_dump出力すると Tue Mar 05 01:00:00 +0000 2013…(1) Tue Mar 05 03:00:00 +0000 2013…(2) Tue Mar 05 07:00:00 +0000 2013…(3) Tue Mar 05 09:00:00 +0000 2013…(4) Tue Mar 05 13:00:00 +0000 2013…(5) Tue Mar 05 15:00:00 +0000 2013…(6) Tue Mar 05 21:00:00 +0000 2013…(7) Wed Mar 06 1:00:00 +0000 2013…(8) Wed Mar 06 3:00:00 +0000 2013…(9) Wed Mar 06 7:00:00 +0000 2013…(10) という(1)~(10)のString文字列があって、これを $yesterday = date('D M d', strtotime('-1 day')); という、昨日の日付のみを抽出する形で、当日の夜0:30に実行します。 これを毎日行うようにしています。 (例でいうと、2013年3月5日のみを抽出するのに、2013年3月6日の0:30に実行します) 自分のパソコンのxamppでテストした場合は問題なく拾えます。 この場合だと「3月5日分のみ」の(1)~(7)です。 しかし、このPHPファイルをさくらサーバーに置いてcronに設定して同じことをすると (4)~(7)のみしか拾えません。 (1)~(3)を拾ってくれないのです。 つまり、 9:00(朝)~0:30(夜)→この時間のある記述は拾う 0:30(夜)~9:00(朝)→この時間のある記述は拾ってくれない なぜか9:00(朝)~0:30(夜)の時間だけ $yesterday = date('D M d', strtotime('-1 day')); で読み込まないようで、何がこの空白の時間を生むのか分からなくて困っています。 まだPHPも慣れないため、ところどころ語弊があるような奇妙な文章だったら恐縮ですが、御存知の方がいらっしゃいましたらご教示頂けたら幸いに存じ上げます。

    • ベストアンサー
    • PHP
  • PHP、UNIXタイムでの日時計算について

    お世話になります。 PHP、UNIXタイムでの時間計算についてなのですが、 例えば勤怠での実働時間を計算したい場合で、 日をまたがった時の処理です。 //出勤時間 $uIn_date = strtotime("2009/02/01 16:45:00"); //退勤時間 $uOut_date = strtotime("2009/02/02 10:00:00"); // 退勤時間-出勤時間 $jitsu = ($uOut_date - $uIn_date); $h = (int)($jitsu /3600); $m=(int)($jitsu % 3600 / 60); $kei= sprintf("%02d:%02d", $h, $m); $keiが17:50の値が帰ってきます。 本来であれば、17:15なのですが。 ロジックミスでしょうか。 また、ご指導いただけないでしょうか。 初心者な質問で申し訳御座いませんが、 よろしくお願いいたします。

    • 締切済み
    • PHP
  • 日付の比較について

    最近PHPの勉強を始めた初心者です。 はじめて質問させていただきます。 2005-1-1から2020-12-31の間で入力した日付の曜日を表示するプログラムを作成しています。 2005-1-1から2020-12-31の間以外ならエラー表示するようにしたいのですが、 入力した日付との比較がうまくいかず、思うように動きません。 どのように直せばいいのかを教えていただけないでしょうか?よろしくお願いします。 <?php $year=$_POST["year"]; $month=$_POST["month"]; $day=$_POST["day"]; $date_str="$year-$month-$day"; $date_time=strtotime($date_str); $firstdate_str="2005-1-1"; $firstdate_time=strtotime($firstdate_str); $lastdate_str="2020-12-31"; $lastdate_time=strtotime($lastdate_str); if ($date_time < $firstdate_time || $date_time> $lastdate_time)  {  echo "Please enter a date between 1/1/2005 and 12/31/2020.";  } else  {  $finddate=date('l', mktime(0,0,0,$month, $day, $year));  echo "The day entered in on $finddate";  } ?>

    • 締切済み
    • PHP
  • 一ヶ月前の月を表示させたい!

    いつもお世話になっています。 今回date関数で引っ張ってきた「m」(month)を、 一ヶ月前の表示にさせたくて困っています。 ソースはこんな感じです。 --ここはちゃんと出ます。 $today = date("Y-m-d"); --print結果  2007-12-07←この形で、一ヶ月前に表示させたい。 --これでいけると思ったんですが、、、 $before = strftime("%F", strtotime("-1month")); --print結果   何も出ない。strftime関数はphp5.2.4は対応していないんでしょうか(?。?);4.4.6ではこれで通ります。 --苦肉の策でこんなのも作ってみましたが、 $current_year = date("Y"); $current_month = date("n"); $current_day = date("d");      $hiki = ($current_month-1);      $before = date("Y-$hiki-d"); --print結果   2007-11-07(しかし、これはただ12と言う数字から-1しただけなので、来年の1月になると、2008-0-1)となってしまいます。これは是非回避したい。 質問まとめ php5.2.4で通る 例 $today = date("Y-m-d"); の一ヶ月前の表示方法を、知りたい。 大変恐縮ですが、 どなたか、知識をお持ちの方、是非ご指導ください。

    • ベストアンサー
    • PHP