2010-03-22 105 views
0

我在包含日,月,年的表單中選擇了三個下拉菜單。相當標準。我忽略了這個問題的所有個人選擇選項。按天數選擇日期時計算日期

<label for="start_date">Start Date<font class="required">*</font>:</label> 
<select name="place_booking[day_val]"> 
<select name="place_booking[month_val]"> 
<select name="place_booking[year_val]"> 

在這之下我有一個選擇客戶希望留在出租的天數。

<label for="number_of_days">Number of Days<font class="required">*</font>:</label> 
<select name="place_booking[number_of_days]"> 

下面有一個空間來顯示基於上述兩個選擇的出發日期。

<label for="departure_date">Departure Date<font class="required">*</font>:</label> 

? - 這一點我想顯示在上述選擇後的計算日期

任何幫助將grealty讚賞。

+0

我知道它的一個棘手的一個:( – Andy 2010-03-22 20:30:23

+0

最簡單的方法是找到一個網站,實現這一點,並試圖瞭解它的JS代碼 – Pentium10 2010-03-22 20:57:40

+0

:)試過了,謝謝。 – Andy 2010-03-22 21:00:21

回答

0

您可以使用下面的代碼

var start_date = new Date(parseInt(form['place_booking[year_val]'].value), parseInt(form['place_booking[month_val]'].value), parseInt(form['place_booking[day_val]'].value)); 
var departure_date = new Date(Date.parse(start_date) + 3600000*24*parseInt(form['place_booking[number_of_days]'].value)); 

,或者您可以使用位於http://www.depressedpress.com/Content/Development/JavaScript/Extensions/DP_DateExtensions/Index.cfm圖書館我一直在使用JavaScript中我的約會操作,這些操作。這是有據可查的,易於使用。

+0

這個想法看起來很酷,我將這段代碼添加到的頭部,並添加了一個帶有departure_date名稱的輸入字段。這是正確的做法嗎?它沒有打球。 – Andy 2010-03-22 21:18:05

+0

那麼這段代碼只是給你一個關於如何使用JavaScript實現你想要的東西的想法。您必須提供更多詳細信息和代碼才能爲您編寫簡單的「複製/粘貼」代碼,或者您必須瞭解一些JavaScript以使代碼適應您的需求。 – BYK 2010-03-22 21:31:06

+0

感謝您的幫助BYK:這是否有幫助:http://www.blackdownluxurylettings.co.uk/place_booking/2010-03-25,1 – Andy 2010-03-22 21:34:21

0

要精確計算日期,您必須將dmy日期轉換爲自過去某個日期以來的天數(所謂的Julian Day),向其添加所需的天數,然後將結果轉換回dmy 。

JavaScript沒有內置的例程,但formulae是衆所周知的,並已在一些網站上實現(快速谷歌搜索帶來this one等)。

+0

感謝您的建議stereofrog – Andy 2010-03-22 21:18:45