2016-10-07 41 views
0

私はユーザに開始時間と終了時間を入力させる簡単なフォームを用意しています。提出すると、開始時刻から終了時刻までの1時間ごとの時間間隔を作成する必要があります。開始時間と終了時間を時間間隔に変換するPHP

開始終了 午後3:00午後4:00 午後4:00に:彼らは開始時刻「午後3時」と終了時刻「19:00」を選択した場合、例えば次のように私は私のデータベースに4つのレコードを作成したいです午後5:00 午後5:00午後6:00 18:00 19:00

ユーザーは、これらの値を選択し、メニューからの選択されています

 <option value="10:00am">10:00am</option> 
     <option value="11:00am">11:00am</option> 
     <option value="12:00pm">12:00pm</option> 
     <option value="1:00pm">1:00pm</option> 
     <option value="2:00pm">2:00pm</option> 
     <option value="3:00pm">3:00pm</option> 
     <option value="4:00pm">4:00pm</option> 
     <option value="5:00pm">5:00pm</option> 
     <option value="6:00pm">6:00pm</option> 
     <option value="7:00pm">7:00pm</option> 
     <option value="8:00pm">8:00pm</option> 
     <option value="9:00pm">9:00pm</option> 
     <option value="10:00pm">10:00pm</option> 
     <option value="11:00pm">11:00pm</option> 

私は次のように開始時間と終了時間を取得していますこれは:

$startTime = $_POST['timeStart']; 
$endTime = $_POST['timeEnd'] ; 

私はforeachを行う必要があると思っていますが、ループで時間間隔を取得し、各間隔の開始時間と終了時間を設定する方法がわからないのですか?

+1

提案:XXから '値='を切り替える:24時間を使用する00PM(0 -23)法である。このam/pmのすべてを扱い、それをクリーンアップしようとするのではなく、非常にシンプルな0-23のメソッドで 'timeStart'から' timeEnd'まで単純な 'while'を数えることができます。 – Abela

+0

@Abelaと同じ前提ですが、私は分単位で指定します(範囲は0〜1440で、30分ごとに30か1時間ごとに60を指定することができます)。次に、入力上で、時間単位の変換:分 - あなたは容易に午後を決定することもできます。この方法でループを作成してオプションとその値を生成することができ、継続時間の計算などを簡単に行うことができます。 – gavgrif

答えて

1

date関数を使用して結果をループする従来の方法に従います。

この試し:入力$_POST['timeStart'] = '3:00pm';$_POST['timeEnd'] = '7:00pm';について

$startTime = strtotime($startTime); /* Find the timestamp of start time */ 
$endTime = strtotime($endTime);  /* Find the timestamp of end time */ 
$input = array(); 
/* Run a loop from start timestamp to end timestamp */ 
for ($i = $startTime; $i < $endTime; $i+=3600) { 
    $input[] = array(
     "start_time" => date("h:ia", $i), 
     "end_time" => date("h:ia", ($i+3600)) 
    ); 
} 

を、出力は次のようになります

Array 
(
[0] => Array 
    (
     [start_time] => 03:00pm 
     [end_time] => 04:00pm 
    ) 

    [1] => Array 
    (
     [start_time] => 04:00pm 
     [end_time] => 05:00pm 
    ) 

    [2] => Array 
    (
     [start_time] => 05:00pm 
     [end_time] => 06:00pm 
    ) 

    [3] => Array 
    (
     [start_time] => 06:00pm 
     [end_time] => 07:00pm 
    ) 

) 
+0

ありがとうございます。ちょうど私が配列の各start_timeとend_timeの値を取得する方法については、どうすればいいですか? (私はここに行くようにPHPをまだ学んでいます)。 – user982124

+0

INSERTクエリでこれらの値を使用する方法を意味しますか? –

+0

はい - 配列のstart_time/end_timeの値ごとに、レコードを作成するためにデータベース操作を実行する必要があります。データベースコードはすでに設定されていますが、配列のstart_time/end_timeの各値を取得する方法を知る必要があります。 – user982124

関連する問題