人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

PHPで次のプログラムを作成してください。

下記の3つのパターンに対応したフォームを作成し、その日時をechoしてください。
?現在からの日時を指定(例)「0日0時5分」と指定したら現在から5分後の時間をechoさせる。
?直接日時を指定(例)「5月26日7時28分」と指定したらそのままずばりechoさせる。
?上記いずれの指定もない場合、デフォルトして現在の日時がechoされる。

複数のフォームを使い分けて何時間何分後かあるいは直接時間を指定するというのがどうしてもうまくいきません。

また下記の点にもご留意くださいますようお願いします。
?は指定したもの以外は自動的に0となる。分を5だけと指定したら、現在から5分後がechoされる。
今年か来年だけを考慮していただければいいので、現在月が5月で?で「3月」と指定した場合、来年の3月ということでお願いしまいます。
セキュリティは考慮していただく必要はありません。
フォームのタイプはselectでもtextでも問題ありません。

Vista、IE、Firefox、最新のXampp、PHP5、 EclipsePDT2を使ってます。
以上よろしくお願いします。

●質問者: taroemon
●カテゴリ:コンピュータ ウェブ制作
✍キーワード:28 3月 5月 5月26日 echo
○ 状態 :終了
└ 回答数 : 1/1件

▽最新の回答へ

1 ● rouge_2008
●200ポイント ベストアンサー

複数のフォームを用意する場合

<html>
<head>
<title>日時表示</title>
</head>
<body>
<div>
<h1>日時表示</h1>
<?php

if(!$_POST) {
 echo "現在の時刻:" . date("Y/n/j H時i分") ."<br>\r\n";
} else {
 echo "<h2>リクエストの結果</h2>\r\n";
 $mon = $_POST["mon"];
 $day = $_POST["day"];
 $hour = $_POST["hour"];
 $min = $_POST["min"];
 if($_POST["btn1"]) {
 $today = getdate();
 $year = ($mon < $today["mon"]) ? $today["year"] + 1 : $today["year"];
 echo "指定日時:" . $year. "/" . $mon. "/" . $day . " " . $hour . "時" . $min . "分<br>\r\n";
 } 
 if ($_POST["btn2"]) {
 echo "指定日時 " . $day . "日" . $hour . "時間" . $min . "分後:";
 $day = $day * 24 * 60 * 60;
 $hour = $hour * 60 * 60;
 $min = $min * 60;
 $time = $day + $hour + $min;
 $reqday = time() + $time;
 echo date("Y/n/j H時i分", $reqday) . "<br>\r\n";
 }
}

?>
<h3>フォーム1</h3>
<form action="" method="POST">
<select name="mon">
 <option value="1">1</option>
 <option value="2">2</option>
 <option value="3">3</option>
 <option value="4">4</option>
 <option value="5">5</option>
 <option value="6">6</option>
 <option value="7">7</option>
 <option value="8">8</option>
 <option value="9">9</option>
 <option value="10">10</option>
 <option value="11">11</option>
 <option value="12">12</option>
</select>月
<select name="day">
 <option value="1">1</option>
 <option value="2">2</option>
 <option value="3">3</option>
 <option value="4">4</option>
 <option value="5">5</option>
 <option value="6">6</option>
 <option value="7">7</option>
 <option value="8">8</option>
 <option value="9">9</option>
 <option value="10">10</option>
 <option value="11">11</option>
 <option value="12">12</option>
 <option value="13">13</option>
 <option value="14">14</option>
 <option value="15">15</option>
 <option value="16">16</option>
 <option value="17">17</option>
 <option value="18">18</option>
 <option value="19">19</option>
 <option value="20">20</option>
 <option value="21">21</option>
 <option value="22">22</option>
 <option value="23">23</option>
 <option value="24">24</option>
 <option value="25">25</option>
 <option value="26">26</option>
 <option value="27">27</option>
 <option value="28">28</option>
 <option value="29">29</option>
 <option value="30">30</option>
 <option value="31">31</option>
</select>日
<select name="hour">
 <option value="0">0</option>
 <option value="1">1</option>
 <option value="2">2</option>
 <option value="3">3</option>
 <option value="4">4</option>
 <option value="5">5</option>
 <option value="6">6</option>
 <option value="7">7</option>
 <option value="8">8</option>
 <option value="9">9</option>
 <option value="10">10</option>
 <option value="11">11</option>
 <option value="12">12</option>
 <option value="13">13</option>
 <option value="14">14</option>
 <option value="15">15</option>
 <option value="16">16</option>
 <option value="17">17</option>
 <option value="18">18</option>
 <option value="19">19</option>
 <option value="20">20</option>
 <option value="21">21</option>
 <option value="22">22</option>
 <option value="23">23</option>
</select>時
<select name="min">
 <option value="0">0</option>
 <option value="1">1</option>
 <option value="2">2</option>
 <option value="3">3</option>
 <option value="4">4</option>
 <option value="5">5</option>
 <option value="6">6</option>
 <option value="7">7</option>
 <option value="8">8</option>
 <option value="9">9</option>
 <option value="10">10</option>
 <option value="11">11</option>
 <option value="12">12</option>
 <option value="13">13</option>
 <option value="14">14</option>
 <option value="15">15</option>
 <option value="16">16</option>
 <option value="17">17</option>
 <option value="18">18</option>
 <option value="19">19</option>
 <option value="20">20</option>
 <option value="21">21</option>
 <option value="22">22</option>
 <option value="23">23</option>
 <option value="24">24</option>
 <option value="25">25</option>
 <option value="26">26</option>
 <option value="27">27</option>
 <option value="28">28</option>
 <option value="29">29</option>
 <option value="30">30</option>
 <option value="31">31</option>
 <option value="32">32</option>
 <option value="33">33</option>
 <option value="34">34</option>
 <option value="35">35</option>
 <option value="36">36</option>
 <option value="37">37</option>
 <option value="38">38</option>
 <option value="39">39</option>
 <option value="40">40</option>
 <option value="41">41</option>
 <option value="42">42</option>
 <option value="43">43</option>
 <option value="44">44</option>
 <option value="45">45</option>
 <option value="46">46</option>
 <option value="47">47</option>
 <option value="48">48</option>
 <option value="49">49</option>
 <option value="50">50</option>
 <option value="51">51</option>
 <option value="52">52</option>
 <option value="53">53</option>
 <option value="54">54</option>
 <option value="55">55</option>
 <option value="56">56</option>
 <option value="57">57</option>
 <option value="58">58</option>
 <option value="59">59</option>
</select>分
<input type="submit" name ="btn1" value="送信"><br>
</form>
<h3>フォーム2</h3>
<form action="" method="POST">
<input type="text" name="day" size="5">日
<select name="hour">
 <option value="0">0</option>
 <option value="1">1</option>
 <option value="2">2</option>
 <option value="3">3</option>
 <option value="4">4</option>
 <option value="5">5</option>
 <option value="6">6</option>
 <option value="7">7</option>
 <option value="8">8</option>
 <option value="9">9</option>
 <option value="10">10</option>
 <option value="11">11</option>
 <option value="12">12</option>
 <option value="13">13</option>
 <option value="14">14</option>
 <option value="15">15</option>
 <option value="16">16</option>
 <option value="17">17</option>
 <option value="18">18</option>
 <option value="19">19</option>
 <option value="20">20</option>
 <option value="21">21</option>
 <option value="22">22</option>
 <option value="23">23</option>
 <option value="24">24</option>
</select>時間
<select name="min">
 <option value="0">0</option>
 <option value="1">1</option>
 <option value="2">2</option>
 <option value="3">3</option>
 <option value="4">4</option>
 <option value="5">5</option>
 <option value="6">6</option>
 <option value="7">7</option>
 <option value="8">8</option>
 <option value="9">9</option>
 <option value="10">10</option>
 <option value="11">11</option>
 <option value="12">12</option>
 <option value="13">13</option>
 <option value="14">14</option>
 <option value="15">15</option>
 <option value="16">16</option>
 <option value="17">17</option>
 <option value="18">18</option>
 <option value="19">19</option>
 <option value="20">20</option>
 <option value="21">21</option>
 <option value="22">22</option>
 <option value="23">23</option>
 <option value="24">24</option>
 <option value="25">25</option>
 <option value="26">26</option>
 <option value="27">27</option>
 <option value="28">28</option>
 <option value="29">29</option>
 <option value="30">30</option>
 <option value="31">31</option>
 <option value="32">32</option>
 <option value="33">33</option>
 <option value="34">34</option>
 <option value="35">35</option>
 <option value="36">36</option>
 <option value="37">37</option>
 <option value="38">38</option>
 <option value="39">39</option>
 <option value="40">40</option>
 <option value="41">41</option>
 <option value="42">42</option>
 <option value="43">43</option>
 <option value="44">44</option>
 <option value="45">45</option>
 <option value="46">46</option>
 <option value="47">47</option>
 <option value="48">48</option>
 <option value="49">49</option>
 <option value="50">50</option>
 <option value="51">51</option>
 <option value="52">52</option>
 <option value="53">53</option>
 <option value="54">54</option>
 <option value="55">55</option>
 <option value="56">56</option>
 <option value="57">57</option>
 <option value="58">58</option>
 <option value="59">59</option>
 <option value="60">60</option>
</select>分後
<input type="submit" name ="btn2" value="送信"><br>
</form>

</div>
</body>
</html>

※フォームのサブミットボタンに名前をつけて判別しています。


一つのフォームに実装する場合

<html>
<head>
<title>日時表示</title>
</head>
<body>
<div>
<h1>日時表示</h1>
<?php

if(!$_POST) {
 echo "現在の時刻:" . date("Y/n/j H時i分") ."<br>\r\n";
} else {
 echo "<h2>リクエストの結果</h2>\r\n";
 $mon = $_POST["mon"];
 $day = $_POST["day"];
 $hour = $_POST["hour"];
 $min = $_POST["min"];
 if($_POST["mon"] && $_POST["day"]) {
 $today = getdate();
 $year = ($mon < $today["mon"]) ? $today["year"] + 1 : $today["year"];
 echo "指定日時:" . $year. "/" . $mon. "/" . $day . " " . $hour . "時" . $min . "分<br>\r\n";
 } elseif ($_POST["day"] || $_POST["hour"] || $_POST["min"]) {
 echo $day . "日" . $hour . "時間" . $min . "分後:";
 $day = $day * 24 * 60 * 60;
 $hour = $hour * 60 * 60;
 $min = $min * 60;
 $time = $day + $hour + $min;
 $reqday = time() + $time;
 echo date("Y/n/j H時i分", $reqday) . "<br>\r\n";
 }
}

?>
<form action="" method="POST">
<select name="mon">
 <option value="0">0</option>
 <option value="1">1</option>
 <option value="2">2</option>
 <option value="3">3</option>
 <option value="4">4</option>
 <option value="5">5</option>
 <option value="6">6</option>
 <option value="7">7</option>
 <option value="8">8</option>
 <option value="9">9</option>
 <option value="10">10</option>
 <option value="11">11</option>
 <option value="12">12</option>
</select>月
<select name="day">
 <option value="0">0</option>
 <option value="1">1</option>
 <option value="2">2</option>
 <option value="3">3</option>
 <option value="4">4</option>
 <option value="5">5</option>
 <option value="6">6</option>
 <option value="7">7</option>
 <option value="8">8</option>
 <option value="9">9</option>
 <option value="10">10</option>
 <option value="11">11</option>
 <option value="12">12</option>
 <option value="13">13</option>
 <option value="14">14</option>
 <option value="15">15</option>
 <option value="16">16</option>
 <option value="17">17</option>
 <option value="18">18</option>
 <option value="19">19</option>
 <option value="20">20</option>
 <option value="21">21</option>
 <option value="22">22</option>
 <option value="23">23</option>
 <option value="24">24</option>
 <option value="25">25</option>
 <option value="26">26</option>
 <option value="27">27</option>
 <option value="28">28</option>
 <option value="29">29</option>
 <option value="30">30</option>
 <option value="31">31</option>
 <option value="32">32</option>
 <option value="33">33</option>
 <option value="34">34</option>
 <option value="35">35</option>
 <option value="36">36</option>
 <option value="37">37</option>
 <option value="38">38</option>
 <option value="39">39</option>
 <option value="40">40</option>
 <option value="41">41</option>
 <option value="42">42</option>
 <option value="43">43</option>
 <option value="44">44</option>
 <option value="45">45</option>
 <option value="46">46</option>
 <option value="47">47</option>
 <option value="48">48</option>
 <option value="49">49</option>
 <option value="50">50</option>
</select>日
<select name="hour">
 <option value="0">0</option>
 <option value="1">1</option>
 <option value="2">2</option>
 <option value="3">3</option>
 <option value="4">4</option>
 <option value="5">5</option>
 <option value="6">6</option>
 <option value="7">7</option>
 <option value="8">8</option>
 <option value="9">9</option>
 <option value="10">10</option>
 <option value="11">11</option>
 <option value="12">12</option>
 <option value="13">13</option>
 <option value="14">14</option>
 <option value="15">15</option>
 <option value="16">16</option>
 <option value="17">17</option>
 <option value="18">18</option>
 <option value="19">19</option>
 <option value="20">20</option>
 <option value="21">21</option>
 <option value="22">22</option>
 <option value="23">23</option>
 <option value="24">24</option>
</select>時
<select name="min">
 <option value="0">0</option>
 <option value="1">1</option>
 <option value="2">2</option>
 <option value="3">3</option>
 <option value="4">4</option>
 <option value="5">5</option>
 <option value="6">6</option>
 <option value="7">7</option>
 <option value="8">8</option>
 <option value="9">9</option>
 <option value="10">10</option>
 <option value="11">11</option>
 <option value="12">12</option>
 <option value="13">13</option>
 <option value="14">14</option>
 <option value="15">15</option>
 <option value="16">16</option>
 <option value="17">17</option>
 <option value="18">18</option>
 <option value="19">19</option>
 <option value="20">20</option>
 <option value="21">21</option>
 <option value="22">22</option>
 <option value="23">23</option>
 <option value="24">24</option>
 <option value="25">25</option>
 <option value="26">26</option>
 <option value="27">27</option>
 <option value="28">28</option>
 <option value="29">29</option>
 <option value="30">30</option>
 <option value="31">31</option>
 <option value="32">32</option>
 <option value="33">33</option>
 <option value="34">34</option>
 <option value="35">35</option>
 <option value="36">36</option>
 <option value="37">37</option>
 <option value="38">38</option>
 <option value="39">39</option>
 <option value="40">40</option>
 <option value="41">41</option>
 <option value="42">42</option>
 <option value="43">43</option>
 <option value="44">44</option>
 <option value="45">45</option>
 <option value="46">46</option>
 <option value="47">47</option>
 <option value="48">48</option>
 <option value="49">49</option>
 <option value="50">50</option>
 <option value="51">51</option>
 <option value="52">52</option>
 <option value="53">53</option>
 <option value="54">54</option>
 <option value="55">55</option>
 <option value="56">56</option>
 <option value="57">57</option>
 <option value="58">58</option>
 <option value="59">59</option>
 <option value="60">60</option>
</select>分
<input type="submit" value="送信"><br>
※月を指定しなかった場合、現在日時に指定した日数と時間を足して表示します。
</form>

</div>
</body>
</html>

※複数のフォームを用意する場合の処理を、こちらの条件分岐と同じに変更しても動作します。

◎質問者からの返答

長文のご回答まことにありがとうございます。

当初思ってたよりも素晴らしくとても満足しています。

特に2つめのがデザイン的にも気に入っているのでこれを使いたいのですが、

「いずれの指定もない場合、デフォルトして現在の日時がechoされる。」というのが私の環境だとうまくいきません。

もし、何か思い当たることがありましたら、手直ししていただけると大変ありがたいです。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ