-1

9:00 に出席した場合、8:30 時間 (これは勤務時間) + 00:30 (これは休憩時間) が追加されると仮定する簡単なスクリプトがあります。そして、出発時刻が(6:00)になるように出力されますが、理由がわからずに機能しません:

<form id="form1" id="form1" action="mail.php" method="POST">

    <label>time
        <span class="small">Add your attendance time</span>
    </label>
    <input type="text" name="time" value="9:00" >
    <label>Email
        <span class="small">Enter a Valid Email</span>
    </label>
        <input type="text" name="email" value="amd@dt4it.com">
<br />
<br />

    <label>break  
        <span class="small">break </span>
    </label>

<select name="break" size="1">
<option value="00:30">yes</option>
<option value="00:00">no</option>

</select>
<br />
<br />
<br />

    <button type="submit" value="Send" style="margin-top:15px;">Submit</button>
<div class="spacer"></div>

</form>

<?php
$time = $_POST['time'] + $_POST['break'] ;
$email = $_POST['email'];
$formcontent=" From: $time ";
$recipient = $email;
$subject = "Contact Form";
$mailheader = "From: $email \r\n";
mail($recipient, $subject, $formcontent, $mailheader) or die("Error!");
echo "Thank You!" . " -" . "<a href='form.html' style='text-decoration:none;color:#ff0099;'> Return Home</a>";

$time2 = strtotime($time)+ strtotime("08:30");
$result = date("H:i",strtotime($time2));

echo $result;
?>
4

1 に答える 1

1

簡単な方法は、DateInterval<option>を使用することです。次のような値を参照してください。

<form action="" method="POST">
    <label>Add your attendance time</label>
    <input type="text" name="time" value="9:00" >
    <label>Email</label>
    <input type="text" name="email" value="amd@dt4it.com">
    <label>Break</label>
    <select name="break" size="1">
        <option value="PT30M">yes</option>
        <option value="PT00M">no</option>
    </select>
    <input type="submit" value="Send" />
</form>

次に、PHP の部分は次のようにさらに簡単になります。

if ($_POST) {
    // create DateTime object for "time"
    $time = new DateTime($_POST['time']);

    // add break to "time" DateTime object
    $interval = new DateInterval($_POST['break']);
    $time->add($interval);

    // add 8:30 to "time" DateTime object
    $interval = new DateInterval("PT8H30M");
    $time->add($interval);

    echo $time->format('H:i \o\r g:i A');
    // will output smth like: 18:00 or 6:00 PM / 17:30 or 5:30 PM
}
于 2013-11-12T09:25:01.967 に答える