2012-08-15 48 views
-1

我有一個代碼,我有2個texboxes和一個按鈕,它根據輸入添加這些文本框的時間值。PHP添加時間

這裏是我的簡單的代碼:

<?php 

echo "<form method=post><input type=text name=etd>"; 
echo "<input type=text name=btime>"; 
echo "<input type=submit name=sub value=submit></form>"; 
if(isset($_POST['sub'])) 
{ 

     $etime = $_POST['etd']; 
     $btym = $_POST['btime']; 
     $time = strtotime("$etime"); 
     $tym = strtotime("btym"); 
     $etym = strtotime("+$btym hours", $time); 
     $eta = date('H:i:s', $etym); 

echo "$eta"; 
} 
?> 

但是這工作,當我輸入12:00和00:30(意思是我要增加30分鐘至12:00),它輸出11:30這應該是12:30。我究竟做錯了什麼?提前致謝。

+0

這可能不會解決您的特定問題,但所有的html屬性值應該用引號括起來。例如。 '' – 2012-08-15 02:40:45

+0

我使用echo「」;所以如果我在裏面添加雙引號,我會得到一個錯誤。 :)) – xjshiya 2012-08-16 02:00:10

+0

然後在它內部使用單引號或者用echo代替。 – 2012-08-16 02:04:47

回答

0

謝謝你的回覆! :)))這是我的第一篇文章,我很高興你們回答了! :)))通過使用mysql addtime()和timediff()函數得到它的工作。沒有我將我的頭撞在桌子上,它很容易工作。無論如何感謝回覆!從現在開始我會一直在你的手中,因爲我想我會發布很多問題。^_^

2

不應該這樣:

$tym = strtotime("btym"); 

是這樣的:

$tym = strtotime("$btym"); 

+0

代碼中永遠不會使用'$ tym' - 這不會改變任何東西。 – nickb 2012-08-15 02:42:38

+0

這是沒有意義的,因爲'$ btwm'在'$ etym = strtotime(「+ $ btym hours」,$ time);'中,並且在字符串''中有一個UNIX時間戳是沒有意義的' + {SOMETHING}小時「。 – nickb 2012-08-15 02:45:27

1

這應該工作。雖然,如果您想使用30分鐘,則btime的值應爲0.5,而不是0:30(因爲strtotime()呼叫中的參考時間爲幾小時)。

正如評論者所建議的,所有的屬性都應該用引號括起來。

<?php 

echo '<form method=post><input type="text" name="etd">'; 
echo '<input type="text" name="btime">'; 
echo '<input type="submit" name="sub" value="submit"></form>'; 
if(isset($_POST['sub'])) 
{ 
    $eta = date('H:i:s', strtotime($_POST['etd'] . ' +' . $_POST['btime'] . ' hours')); 
    echo "$eta"; 
} 
?>