2016-12-18 2 views
-3

Nun, ich habe diesen HTML-Code:Wie füge ich Wert in Eingabeart Datum Javascript?

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

Ich brauche die Berechnung unten zu tun, wenn start_date oder finish_date Objektwert geändert

start_date + finish_date = final_date 

I don weiß nicht, wie man die obige Berechnung in Javascript durchführt.

Enddatum formatierte Datum Wert durch die Art und Weise, zum Beispiel: 2016-12-18 + 5 = 2016-12-23

Jede Hilfe wird sehr geschätzt.

Vielen Dank.

+1

Also, das Datum von der Eingabe analysieren (das ist hier sehr gut auf SO abgedeckt) und dann einen Tag hinzufügen (auch hier sehr gut abgedeckt auf SO) und formatieren die resultierenden Daten (Sie haben es erraten, gut - hier auf SO abgedeckt) und diese Zeichenfolge zurück in den Eingang. –

+1

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

+0

@baao Enddatum formatiert in Datumswert übrigens, zum Beispiel: 2016-12-18 + 5 = 2016-12-23 –

Antwort

0

Sie können beide Daten in Zeitstempel konvertieren, die Zeitstempel hinzufügen und ein neues Datum erstellen.

// 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

Ich möchte die Dauer in Tagen zu final_date hinzufügen, wobei final_date = start_date (eingabetyp date) + finish_date (auch eingabetyp date) –

+0

'var final_date = neues Datum (start_date.getTime() + finish_date.getTime());' something so könnte das funktionieren –

+0

Verzeihen Sie mir, finish_date ist kein Eingabe-Datum, aber Eingabe-Typ Text, es enthält Tage Wert in Anzahl. –

0

Diese erhalten Sie, was Sie wollen:

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); 

Ein Hinweis: Benennen Sie Felder und Variablen mit sinnvollen Bedingungen. Wenn Sie finish_date anrufen, was ist nicht ein Datum, aber eigentlich eine Nummer, wird jeder verwirrt.

Verwandte Themen