[JavaScript] Datum berechnen

Dieses Thema im Forum "Webentwicklung" wurde erstellt von Arrowhead, 5. Mai 2013 .

  1. 5. Mai 2013
    Datum berechnen

    Moin,
    Lese von einem input field ein Datum heraus. Z.B. 25.5.2013(d,m,y). Übergebe diesen Wert einer JavaScript Funktion.

    Code:
    function add_value1(this_value1)
    {
     split = this_value1.split(".");
     this_value1 = split[1] + '.' + split[0] + '.' + split[2];
     
     someDate = new Date(this_value1);
     var numberOfDaysToAdd = 8;
     var newDate = new Date();
    
     var dd = newDate.setDate(someDate.getDate()+numberOfDaysToAdd);
     var mm = someDate.getMonth() + 1;
     var y = someDate.getFullYear();
    
     someFormattedDate = dd + '.'+ mm + '.'+ y;
     document.getElementById('enddatum').value = someFormattedDate;
    }
    
    Als Resultat erhalte ich 1370164225765.5.2013
    Eingabe war 25.5.2013. Wie kann ich die Tage richtig berechnen?thx
     
  2. 5. Mai 2013
    Zuletzt bearbeitet: 5. Mai 2013
    AW: Datum berechnen

    Du musst natürlich erstmal das Date-Object auf den neuen Tag setzen und dann per newDate.getDate() den tag in die variable "dd" setzen.
    Du musst natürlich auch darauf achten das du den Monat und das Jahr ebenfalls von newDate beziehst und nicht von someDate.

    Code:
    function add_value1(this_value1) {
     var split = this_value1.split(".");
     var this_value1 = split[1] + '.' + split[0] + '.' + split[2];
    
     var someDate = new Date(this_value1);
     var numberOfDaysToAdd = 8;
     var newDate = new Date();
    
     newDate.setDate(someDate.getDate()+numberOfDaysToAdd);
    
     var dd = newDate.getDate();
     var mm = newDate.getMonth() + 1;
     var y = newDate.getFullYear();
    
     var someFormattedDate = dd + '.'+ mm + '.'+ y;
     document.getElementById('enddatum').value = someFormattedDate;
    }
     
    1 Person gefällt das.
  3. 5. Mai 2013
    AW: Datum berechnen

    Und vor allem musst du darauf achten alle Variablen mittels "var" zu deklarieren
     
  4. 15. Mai 2013
    AW: Datum berechnen

    Habe die Funktion nun wie folgt angepasst:
    Code:
    function add_value1(this_value1)
    {
     var kaufdatum = document.getElementById('kaufdatum').value;
     var split_kaufdatum = kaufdatum.split(".");
     kaufdatum = split_kaufdatum[1] + '.' + split_kaufdatum[0] + '.' +
     split_kaufdatum[2];
     
     kaufdatum = new Date(kaufdatum);
     
     var numberOfDaysToAdd = 182;
    
     kaufdatum.setDate(kaufdatum.getDate()+numberOfDaysToAdd);
    
     var dd = kaufdatum.getDate();
     var mm = kaufdatum.getMonth() + 1;
     var y = kaufdatum.getFullYear();
    
     var enddatum = dd + '.'+ mm + '.'+ y;
     document.getElementById('enddatum').value = enddatum;
    }
    
    Die Berechnung funktioniert nur im Chrome. Im IE und Firefox gibt es als Enddatum den Wert 'NaN.NaN.NaN' zurück.
    Die Funktion wird im php file wie folgt aufgerufen:
    Code:
    <input type="radio" name="abo_dauer" id="abo_dauer" value="180" onChange="add_value1(this.value)">1/2 Jahres 
    
    Woran kann das liegen? thx
     
  5. 15. Mai 2013
    AW: Datum berechnen

    Scheint als ob nur Chrome mit deinem Datum-Format klar kommt.

    Code:
    // YYYY-MM-DD
    kaufdatum = split_kaufdatum[2] + '-' + split_kaufdatum[1] + '-' + split_kaufdatum[0];
     
  6. 15. Mai 2013
    AW: Datum berechnen

    Alternativ mal probieren mit .setDate() .setMonth() und .setFullYear() anstatt das Datum als string zu parsen.
     
  7. Video Script

    Videos zum Themenbereich

    * gefundene Videos auf YouTube, anhand der Überschrift.