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?

1voto

Faisal E.K Punkte 23

Da der Typ Datum nur das Format "yyyy-MM-dd" akzeptiert, müssen Sie den Datumswert entsprechend formatieren.

Hier ist die Lösung für dieses Problem,

var d = new Date();
var month = d.getMonth();
var month_actual = month + 1;

if (month_actual < 10) {
  month_actual = "0"+month_actual; 
  }

var day_val = d.getDate();
if (day_val < 10) {
  day_val = "0"+day_val; 
  }

document.getElementById("datepicker_id").value = d.getFullYear()+"-"+ month_actual +"-"+day_val;

1voto

Prabha Punkte 236
$(document).ready(function(){
  var date = new Date();

  var day = ("0" + date.getDate()).slice(-2); var month = ("0" + (date.getMonth() + 1)).slice(-2);

  var today = date.getFullYear()+"-"+(month)+"-"+(day) ;
});

$('#dateid').val(today);

0voto

SteppingHat Punkte 1146

In HTML selbst gibt es keine Standardmethode, um das heutige Datum in das Eingabefeld einzufügen. Wie jedes andere Eingabefeld akzeptiert es jedoch einen Wert.

Sie können PHP verwenden, um das heutige Datum abzurufen und es in das Wertfeld des Formularelements einzugeben.

<?php
    // Fetch the year, month and day
    $year = date(Y);
    $month = date(m);
    $day = date(d);

    // Merge them into a string accepted by the input field
    $date_string = "$year-$month-$day";

    // Send to the browser the input field with the value set with the date string
    echo "<input type='date' value='$date_string' />";
?>

Das Wertefeld akzeptiert das Format JJJJ-MM-TT als Eingabe, so dass Sie einfach eine Variable $date_string im gleichen Format, das der Eingabewert akzeptiert, und füllen Sie es mit dem Jahr, dem Monat und dem Tag, die aus dem heutigen Datum geholt wurden, und voilá! Schon haben Sie ein vorgewähltes Datum!

Ich hoffe, das hilft :)

Bearbeiten:

Wenn Sie das Eingabefeld nicht in PHP, sondern in HTML verschachtelt haben möchten, können Sie wie folgt vorgehen.

<?php
    // Fetch the year, month and day
    $year = date(Y);
    $month = date(m);
    $day = date(d);

    // Merge them into a string accepted by the input field
    $date_string = "$year-$month-$day";
?>
<html>
    <head>...</head>
    <body>
        <form>
            <input type="date" value="<?php print($date_string); ?>" />
        </form>
    </body>
</html>

Ich weiß, dass diese Frage schon vor einer Weile gestellt wurde (vor 2 Jahren), aber es hat trotzdem eine Weile gedauert, bis ich eine eindeutige Antwort im Internet gefunden habe, also soll dies jedem dienen, der nach der Antwort sucht, wann immer sie auch sein mag, und ich hoffe, es hilft jedem sehr :)

Eine weitere Bearbeitung:

Fast vergaß, etwas, das ein königlicher Schmerz für mich in der Vergangenheit war, ist immer vergessen, die Standardzeitzone einzustellen, wann immer ein Skript in PHP, das Gebrauch von der date() Funktion macht.

Die Syntax lautet date_default_timezone_set(...); . Die Dokumentation kann gefunden werden hier bei PHP.net y die Liste der unterstützten Zeitzonen, die in die Funktion einzufügen sind, finden Sie hier . Dies war immer ärgerlich, da ich in Australien bin, wird alles immer 10 Stunden zurückgeschoben, wenn ich dies nicht richtig eingestellt habe, da es standardmäßig auf UTC+0000 eingestellt ist, wo ich UTC+1000 benötige, also sei einfach vorsichtig :)

0voto

Marlon Punkte 1

Ich hatte das gleiche Problem und habe es mit einfachem JS behoben. Die Eingabe:

<input type="date" name="dateOrder" id="dateOrder"  required="required">

die JS

<script language="javascript">
document.getElementById('dateOrder').value = "<?php echo date("Y-m-d"); ?>";
</script>

Wichtig: Das JS-Skript sollte in der letzten Code-Zeile oder nach der Eingabe stehen, denn wenn Sie diesen Code vorher einfügen, wird das Skript Ihre Eingabe nicht finden.

0voto

Nikhil sHETH Punkte 480

Danke Peter, jetzt ändere ich meinen Code.

<input type='date' id='d1' name='d1'>

<script type="text/javascript">
var d1 = new Date();
var y1= d1.getFullYear();
var m1 = d1.getMonth()+1;
if(m1<10)
    m1="0"+m1;
var dt1 = d1.getDate();
if(dt1<10)
dt1 = "0"+dt1;
var d2 = y1+"-"+m1+"-"+dt1;
document.getElementById('d1').value=d2;
</script>

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