2013-03-05 164 views
0

我目前正在制定一個小表格,允許人們預訂旅館住宿。基本上,我讓他們選擇兩個日期。 (到達日&出發日)然後我想計算這些日期之間的差異,以天爲單位,最後我想將日數乘以每天的價格。計算天*之間的差價*每日價格=價值PHP

我似乎無法弄清楚如何計算每天的天*價格並將該字符串傳遞給我的表單中的「金額值」

這是我走到這一步:

<input type="text" id="datepicker" value="arrival (day-month-year)" /> 
<input type="text" id="datepicker2" value="departure (day-month-year)" /> 

<form action="checkout.php" method="post"> 
    <input name="amount" type="hidden" value="$dateDiff * price per day = value"> 
    <input type="submit" value="Check out" id="checkout"> 
</form> 

我的PHP

<?php 
$date1 = ("#datepicker"); 
$date2 = ("#datepicker2"); 
$dateDiff = $date1 - $date2; 
$fullDays = floor($dateDiff/(60*60*24)); 
echo "Difference is $fullDays days"; 
?> 

編輯:前兩種意見後,讓我解釋說,我是相當新的PHP。謝謝。

+1

試試'echo $ date1',看看你認爲你在那裏做什麼都行不通。一旦你修好了,你可以開始思考你期望的結果是從另一個字符串中減去一個字符串,因爲這肯定不會達到你期望的效果。 – 2013-03-05 08:54:55

+0

我試圖捕獲#datepicker&#datepicker2的值。 – Jefferson 2013-03-05 08:56:48

+1

這不是你如何在PHP中完成的。 Javascript,kind of,but not PHP – niaccurshi 2013-03-05 08:57:17

回答

2

你必須把輸入字段在形式和給它一個這樣的名字:

<form action="checkout.php" method="post"> 
    <input type="text" id="datepicker" name="datepicker" value="arrival (day-month-year)" /> 
    <input type="text" id="datepicker2" name="datepicker2" value="departure (day-month-year)" /> 
    <input name="amount" type="hidden" value="$dateDiff * price per day = value"> 
    <input type="submit" value="Check out" id="checkout"> 
</form> 

現在在你的PHP文件中:

<?php 
    if(isset($_POST["datepicker"], $_POST["datepicker2"])){ 
    $date1 = new DateTime($_POST["datepicker"]); 
    $date2 = new DateTime($_POST["datepicker2"]); 
    $diff = $date1->diff($date2); 
    $amount_per_day = 10; // for example 10 dollars 
    $total = floor($diff["days"]) * $amount_per_day; // total 
    } 
?> 
+1

謝謝親愛的先生!非常感激。 – Jefferson 2013-03-05 09:07:06

2

datetime對象提供diff功能:

http://php.net/manual/en/datetime.diff.php

$datetime1 = new DateTime('2009-10-11'); 
$datetime2 = new DateTime('2009-10-13'); 
$interval = $datetime1->diff($datetime2); 
print_r($interval); 

DateInterval對象 ( [Y] => 0 [M] => 0 [d] => 2 [h] => 0 [i] => 0 [s] => 0 [invert] => 0 [天] => 2 )

所以,你可以計算出你的價格與

$price = $pricePerDay * $interval->days; 
1

試試這個:

function dateDiff($start, $end) 
{ 
$start_ts = strtotime($start); 
$end_ts = strtotime($end); 
$diff = $end_ts - $start_ts; 
return round($diff/86400); 
}