587 Stimmen

Wie setzt man den Standardwert des Eingabetyps Datum auf heute?

Gegeben ein Eingabeelement:

<input type="date" />

Gibt es eine Möglichkeit, den Standardwert des Datumsfelds auf das heutige Datum zu setzen?

398voto

Tak Punkte 11084

Wie jedes HTML-Eingabefeld lässt der Browser das Datumselement leer, es sei denn, es wird ein Standardwert in der value Attribut. Leider bietet HTML5 keine Möglichkeit zur Angabe von 'today' im HTMLInputElement.prototype.value .

Stattdessen muss man explizit eine RFC3339 formatiertes Datum ( YYYY-MM-DD ). Zum Beispiel:

element.value = "2011-09-29"

316voto

André Punkte 8324

Utilisez HTMLInputElement.prototype.valueAsDate :

document.getElementById('datePicker').valueAsDate = new Date();

282voto

brianary Punkte 8554

Das JavaScript-Date-Objekt bietet genügend integrierte Unterstützung für das erforderliche Format, um eine manuelle Eingabe zu vermeiden:

Fügen Sie dies für eine korrekte Zeitzonenunterstützung hinzu:

Date.prototype.toDateInputValue = (function() {
    var local = new Date(this);
    local.setMinutes(this.getMinutes() - this.getTimezoneOffset());
    return local.toJSON().slice(0,10);
});

jQuery:

$(document).ready( function() {
    $('#datePicker').val(new Date().toDateInputValue());
});

Reines JS:

document.getElementById('datePicker').value = new Date().toDateInputValue();

149voto

Isham Mohamed Punkte 1495

Dies beruht auf PHP:

<input type="date" value="<?php echo date('Y-m-d'); ?>" />

49voto

Jeff Punkte 4097

Sie können den Standardwert durch JavaScript füllen, wie hier zu sehen:

http://jsfiddle.net/7LXPq/

$(document).ready( function() {
    var now = new Date();
    var month = (now.getMonth() + 1);               
    var day = now.getDate();
    if (month < 10) 
        month = "0" + month;
    if (day < 10) 
        day = "0" + day;
    var today = now.getFullYear() + '-' + month + '-' + day;
    $('#datePicker').val(today);
});

Ich würde wahrscheinlich etwas mehr Zeit investieren, um herauszufinden, ob der Monat und das Datum einstellig sind, und ihnen eine zusätzliche Null voranstellen... aber das sollte Ihnen eine Idee geben.

EDIT: Zusätzliche Prüfung auf die zusätzliche Null.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X