2016-12-18 11 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"/>

は私がstart_dateのまたはfinish_dateオブジェクトの値が変更されたときに、以下の計算を行う必要があるが

start_date + finish_date = final_date 

Iドン上記の計算をJavascriptで行う方法はわかりません。方法日付値でフォーマット

最終日付は、例えば:2016年12月18日+ 5 = 2016年12月23日

すべてのヘルプははるかに理解されるであろう。

ありがとうございます。

+1

入力から日付を解析して(ここではSOで非常によくカバーされています)、それに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 = duration_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とはではなく、という日付ですが、実際には数字ですが、誰もが混乱します。

関連する問題