翌日の日付表示で土日を抜きたい

このQ&Aのポイント
  • 次回の会合部屋の予約可能日付を表示させるスクリプトを考えています。土曜日或いは日曜日の場合は翌週の月曜日が表示されるようにしたいです。
  • 現在のスクリプトでは、1日後の日付を表示することしかできません。土曜日と日曜日を表示から省く方法を教えてください。
  • 土曜日と日曜日を表示から省く方法について教えてください。
回答を見る
  • ベストアンサー

翌日の日付表示で土日を抜きたい

質問させていただきます。 次回の会合部屋の予約可能日付を表示させるスクリプトを考えています。まず1日後の日付表示を考えているのですが、1日後が土曜日或いは日曜日の際には翌週の月曜日が表示されるようにしたいです。 現状は下記のとおり1日後の日付を表示する事しかできません。 <? $youbi = array("日","月","火","水","木","金","土"); $d=mktime(0,0,0,date("m"),date("d")+1,date("y")); print date("Y年m月d日",$d)." (".$youbi[date("w",$d)].")"; ?> 土曜日と日曜日は表示から省かれるようにする方法を教えてください。

  • PHP
  • 回答数1
  • ありがとう数1

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

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

土曜だったら2日たして、日曜だったら1日たせばいいのでは? <?PHP $youbi = array("日","月","火","水","木","金","土"); for($i=0;$i<20;$i++){ $d=mktime(0,0,0,date("m"),date("d")+$i,date("y")); if(date("w",$d)==6) $d=$d+60*60*24*2; if(date("w",$d)==0) $d=$d+60*60*24; print date("Y年m月d日",$d)." (".$youbi[date("w",$d)].")<br>"; } ?> この場合、土曜に1日たすと日曜になるので、2日足さずに、 1日だけたしてもおなじですね

wf3255
質問者

お礼

とてもcoolなご回答ありがとうございます。 希望通りの動きが出来ました。

関連するQ&A

  • 明日以降の平日表示

    ちょっと頭がこんがらがってわからなくなってしまいました。 明日以降の平日の日付を取得・表示するスクリプトを考えております。 ========= <? $youbi = array("日","月","火","水","木","金","土"); $d=mktime(0,0,0,date("m"),date("d")+1,date("y")); if(date("w",$d)==6) $d=$d+60*60*24*2; if(date("w",$d)==0) $d=$d+60*60*24*2; $theday = date("Y年m月d日",$d)." (".$youbi[date("w",$d)].")"; print $theday; ?> <? $youbi = array("日","月","火","水","木","金","土"); $d=mktime(0,0,0,date("m"),date("d")+2,date("y")); if(date("w",$d)==6) $d=$d+60*60*24*2; if(date("w",$d)==0) $d=$d+60*60*24*2; $theday = date("Y年m月d日",$d)." (".$youbi[date("w",$d)].")"; print $theday; ?> <? $youbi = array("日","月","火","水","木","金","土"); $d=mktime(0,0,0,date("m"),date("d")+3,date("y")); if(date("w",$d)==6) $d=$d+60*60*24*2; if(date("w",$d)==0) $d=$d+60*60*24*2; $theday = date("Y年m月d日",$d)." (".$youbi[date("w",$d)].")"; print $theday; ?> <? $youbi = array("日","月","火","水","木","金","土"); $d=mktime(0,0,0,date("m"),date("d")+4,date("y")); if(date("w",$d)==6) $d=$d+60*60*24*2; if(date("w",$d)==0) $d=$d+60*60*24*2; $theday = date("Y年m月d日",$d)." (".$youbi[date("w",$d)].")"; print $theday; ?> この方法だとなぜか、 ============ 2007年08月27日 (月) 2007年08月28日 (火) 2007年08月27日 (月) 2007年08月28日 (火) ============ となります。 どこがおかしいのでしょうか?

    • ベストアンサー
    • PHP
  • date関数で、曜日を日本語表示でループさせる。

    いつもお世話になります。 さて、date関数で、曜日を日本語表示でループさせ、日曜日だけ外す方法で悩んでおります。 今日から、順番に日付を表示させるのは、下記でできたのですが、 <?PHP $nday = mktime(); for($i=0;$i<5;$i++){ print "<option>".date("m月d日 (D)", mktime(0,0,0,date("m"),date("d")+$i,date("y")))."<br />"; } ?> 例) 04月18日 (Wed) 04月19日 (Thu) 04月20日 (Fri) 04月21日 (Sat) 04月22日 (Sun) 日本語表示にさせようとすると、曜日がループしません。 <?PHP $nday = mktime(); $youbi = array("日","月","火","水","木","金","土"); for($i=0;$i<5;$i++){ print "<option>".date("m月d日 (".$youbi[date(w)].")", mktime(0,0,0,date("m"),date("d")+$i,date("y")))."<br />"; } ?> 例) 04月18日 (水) 04月19日 (水) 04月20日 (水) 04月21日 (水) 04月22日 (水) また、ここから日曜日だけ外すことはできますか? お手数ですが、ご教示ください。 よろしくお願いいたします。

    • 締切済み
    • 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
  • 日付取得、計算及び表示コードが動作しません。

    日付取得、計算及び表示コードが動作しません。 下記のコードのどこが間違っているのか、どなたかお分かりですか? このコードでは、今日の日付をサーバから取得し、それから10日後の日付を計算して表示したいです。 $currentdate = .getdate(); $yyyy = $currentdate["year"]; $mm = $currentdate["mon"]; $dd = $currentdate["mday"]; $int_day = 10; $duedate = .date("y/m/d", mktime(0, 0, 0, $mm, $dd+$int_day, $yyyy)); echo "$duedate" また、上記のコードが動作するようになったとして、表示される日付は「2008/06/10」のようになるかと思いますが、これを「2008年06月10日」のように表示させる方法をご存知でしょうか? >$duedate = .date("y/m/d", mktime(0, 0, 0, $mm, $dd+$int_day, $yyyy)); 上記コードを下記のように変更してもだめです。 >$duedate = .date("y年m月d日", mktime(0, 0, 0, $mm, $dd+$int_day, $yyyy)); よろしくお願いします。

    • ベストアンサー
    • PHP
  • 日付 yymmdd

    今日の日付をたとえば2007年12月13日のときは071213と表記させたいと思い、 $today = mktime (0,0,0,date("m") ,date("d")+1,date("Y")); $TODAY = date("ymd",today); としたのですが上手くいきません。 出力は700101となってしまいます。 どうすればよいでしょうか?

    • ベストアンサー
    • PHP
  • 日付の表示~どこがおかしいでしょうか?~

    「データベースの任意のフォーム(テスト日付リスト)から今日以降の日付のデータを取得し、日付が近い順にwebページに表示する」方法を考えています。 下記のスクリプトですとデータベースの任意のフォームには9月内の日付リストが存在するのに、webページでは今月(9月)分の日付のデータは表示されず、10/1以降の日付のデータが取り出されてしまいます。 =========== <? define("FORMID_TEST", "テスト日付リスト"); function getTestDayList() { global $NBCLIENT; $testdaylist = array(); $datalist = $NBCLIENT->search(FORMID_TEST,$conditions); if (is_array($datalist)) { $testdaylist = $datalist; } return $testdaylist; } function cmp($a, $b){ $x=$a["テスト日付"]; $y=$b["テスト日付"]; if($x == $y){ return 0; } return ($x < $y) ? -1 : 1; } $seminarsortlist = getSeminarSortList(); usort($seminarsortlist, "cmp"); $today = time(); foreach ($seminarsortlist as $seminarsort) { ?> <? $view = date_format("Ymd",$seminarsort["テスト日付"]); $y = substr("$view",0,4); $m = substr("$view",4,2); $d = substr("$view",6,2); $viewflug = mktime(0,0,0,$d,$m,$y); ?> <? if ($viewflug - $today < 86400) { ?> <?=hs($seminarsort["テスト日付"]) ?> <? } ?> <? } ?> =========== どうしても解決できません。 よろしくお願いいたします。

    • ベストアンサー
    • PHP
  • PHP-日付の表示形式

    いつもお世話になっています。 現在データ更新時にCSVを作成する部分があるのですが、 $Date = date("md", mktime(0, 0, 0, date("m"), date("d")+1, 0) ); としたところ実行日の翌日の日付(1月1日に実行した場合は1月2日)を反映させるようにしているのですが、これを年も含めて反映させるにはどのように変更を加えればいいでしょうか? 【現在】"0102"という形で表示 【希望】"20070102"というように年表示を加えたい 何卒よろしくお願いいたします。

    • ベストアンサー
    • PHP
  • 設定日から指定日数後の日付の取得

    全く初心者の質問ですみません。 設定日から指定日数後の日付を取得したいと思っています。 echo $date // 正しい設定日がY-m-dで表示されます date ("Y-m-d", mktime (0,0,0,date('m',$date),date('d',$date) + $add_date,date('Y',$date))); で取得できると思ったのですが、常に1970-01-01が返されます。 先ほどecho $dateで設定した日付が表示されるにもかかわらず、 print_r(getdate($add_date)); とすると [seconds] => 31 [minutes] => 33 [hours] => 9 [mday] => 1 [wday] => 4 [mon] => 1 [year] => 1970 [yday] => 0 [weekday] => Thursday [month] => January [0] => 2011 と1970-01-01が返されます。 何故でしょうか?

    • ベストアンサー
    • PHP
  • 毎週土曜日のみの日付を取得、プルダウンリストに表示させたい。

    毎週土曜日のみの日付を取得、プルダウンリストに表示させたい。 よろしくお願い致します。 表題の通りなのですが、Javascriptで「毎週土曜日の日付のみ」を取得して、 プルダウンリストで表示・選択させたいと考えております。 以前、任意での指定日以降(明日や明後日など)の日付と曜日を取得して、 プルダウンで表示・選択できるコード(下記のものです)を教えて頂いたのですが、 このような感じで土曜日の日付のみを表示・選択できるようになると理想です。 <script language="javascript"> //var Today = new Date(); //var d = new Date(); var Youbi = new Array( "日", "月", "火", "水", "木", "金", "土" ); /* ひと月後までを表示 */ for ( var i = 3; i < 31; i++ ){ var d = new Date(); d.setDate( d.getDate() + i ); /* 各要素を抽出(月と日は2桁で)*/ var sYer = "" + d.getFullYear(); var sMon = ( "00" + ( d.getMonth() + 1 ) ).match( /..$/ );; var sDat = ( "00" + d.getDate() ).match( /..$/ ); var sDay = Youbi[ d.getDay() ]; /* <option>を書き出し */ document.write( "<option value = '" + sYer + "年" +sMon + "月" + sDat + "日" + "'>" +sYer + "年" + sMon + "月" + sDat + "日(" + sDay + ")</option>\n" ); } </script> もしお分かりの方がいらっしゃいましたら、ご教授頂けると幸いです。 どうぞよろしくお願い致します。

  • phpでの日付の取得について

    PHPでサイト内に、1週間分の日付を表示させ 日付ごとに指定したページに移動するよう、リンクを張りたいと思っております。 以下で日付は表示できたのですが 日付と日付の間にスペースを入れたいです。 ※可能であれば曜日も表示させたいです。 ↓現在、このように表示されます。 1/181/191/201/211/221/231/24 また、日付ごどに指定サイトへリンクも貼りたと思ってます。 <?php $nday = mktime(); for($i=0;$i<7;$i++){ print date("n/j",mktime(0,0,0,date("m",$nday),date("d",$nday)+$i,date("y",$nday)))."<td>"; } ?> どなたか、ご教授いただけないでしょうか? 以上、宜しくお願いいたします。

    • ベストアンサー
    • PHP

専門家に質問してみよう