2016-12-18 54 views
-3

嗯,我有這樣的HTML代碼:如何在輸入類型日期Javascript中添加值?

<input type="date" name="start_date" value="<?php echo date(" Y-m-d "); ?>"/> 
 
<input type="date" name="finish_date" value="5"/>

我需要做下面的時候起始日期finish_date對象值改變了計算

start_date + finish_date = final_date 

我不不知道如何在Javascript中進行上面的計算。

截止日期的方式中的日期值格式化爲例如:2016年12月18日+ 5 = 2016年12月23日

任何幫助將不勝感激。

謝謝。

+1

因此,從輸入中解析日期(這在SO上已經很好地覆蓋了),然後爲它添加一天(這裏也很好地覆蓋了這一點)並格式化結果數據(您猜對了,在這裏覆蓋SO)並將該字符串放回輸入。 –

+1

_start_date + finish_date = final_date_ ???所以2016-01-15 + 2016-01-15 = 4032-02-30 ??? – baao

+0

@baao最終日期格式化爲日期值的方式,例如:2016-12-18 + 5 = 2016-12-23 –

回答

0

您可以將這兩個日期轉換爲時間戳,添加時間戳並構建一個新的日期。

// this is milliseconds 
var time_stamp = start_date.getTime() 

var finish_stamp = finish_date.getTime() 

var final_date = new Date(time_stamp + finish_stamp); 
+0

我想增加持續時間到final_date,其中final_date = start_date(輸入類型日期)+ finish_date(也是輸入類型日期) –

+0

'var final_date = new Date(start_date.getTime()+ finish_date.getTime());'something像這樣可以工作 –

+0

對不起,finish_date不是輸入類型日期,而是輸入類型文本,其中包含天數值。 –

0

這會得到你想要的東西:

var startDate = document.querySelector("[name=start_date]"); 
var finishDate = document.querySelector("[name=finish_date]"); 

var start = startDate.valueAsDate; 
var days = parseInt(finishDate.value); 

var finalDate = new Date(start); 
finalDate.setDate(finalDate.getDate() + days); 

var fomattedDate = finalDate.getFullYear() 
    + ("0" + (finalDate.getMonth() + 1)).slice(-2) 
    + ("0" + finalDate.getDate()).slice(-2); 
// Or, if the browser supports toISOString: 
var formattedDate = finalDate.toISOString().slice(0, 10); 

的說明:命名字段和有意義的方面的變量。如果你打電話finish_date什麼是不是約會,但實際上是一個數字,每個人都感到困惑。

相關問題