2016-10-18 4 views
0

私はユーザーが時間/時間(hh:mm)を入力できるようにするプログラムを作成しようとしました。この時間/期間が1時間を超えると、「MaintenanceDuration」という変数に15分が追加されます。入力が1時間以下の場合、10分が追加されます。コードが正しい出力を生成しない

コードを実行すると、入力が1時間を超えていても10分しか追加されません。

私は、$Durationが設定されていない/定義されていると言われていますが、ユーザーが入力を提出したのは間違いありません。

HTML:

<html> 
<body> 

<form action="maintenance-formula.php" method="post"> 
Duration: <input type="time" name="Duration" id="Duration"><br> 
<input type="submit"> 
</form> 

</body> 
</html> 

PHP:

<?php 

$Duration = $_POST['Duration']; 

if ($Duration > strtotime('1:00:00')) { 
     echo "Added 15 maintenance minutes!"; 
     $MaintenanceDuration = strtotime('0:15:00'); 
} else { 
     echo "Added 10 maintenance minutes!"; 
     $MaintenanceDuration = strtotime('0:10:00'); 
} 

$MaintenanceDuration = strftime('%H:%M', $MaintenanceDuration); 
echo $MaintenanceDuration; 

?> 

任意の助けいただければ幸いです。

+4

エコーstrtotime( '1:00:00') 'と表示されますか? –

+0

プロデュース '1476766800' –

+1

そして' echo $ _POST ['Duration']; 'は何ですか? – AbraCadaver

答えて

0

$Durationが厳密にhh:mm形式で指定されている場合は、解析する必要があります。

$parsedDuration = explode(':', $Duration); 

$hours = intval($parsedDuration[0]); 
$mins = intval($parsedDuration[1]); 

if ($hours > 0 && $mins > 0) { 
    echo "Added 15 maintenance minutes!"; 
    $MaintenanceDuration = strtotime('0:15:00'); 
} else { 
    echo "Added 10 maintenance minutes!"; 
    $MaintenanceDuration = strtotime('0:10:00'); 
} 
+0

ありがとう、これは動作します!私は1時間以下(1:00)以下の値でテストしましたが、これらは正しい出力を示しましたが、1時にテストしたときには10分ではなく15分が追加されました。 –

+0

OK、コードを更新しました。今仕事。 –

+0

パーフェクト、ありがとう! –

関連する問題