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?

4voto

Gumba Punkte 41

Dies ist, was ich in meinem Code, ich habe gerade getestet und es funktionierte gut, input type="date" nicht unterstützen, um curdate automatisch eingestellt, so dass der Weg, den ich verwendet, um diese Einschränkung zu überwinden wurde mit PHP-Code einen einfachen Code wie dieser.

<html>
<head></head>
    <body>
        <form ...>
            <?php
                echo "<label for='submission_date'>Data de submissão</label>";
                echo "<input type='date' name='submission_date' min='2012-01-01' value='" . date('Y-m-d') . "' required/>";
            ?>
        </form>
    </body>
</html>

Hoffentlich hilft das!

4voto

csandreas1 Punkte 2209

Dies ist etwas, das Sie wirklich serverseitig tun müssen, da das lokale Zeitformat jedes Benutzers unterschiedlich ist, ganz zu schweigen davon, dass sich jeder Browser anders verhält.

Html Datum Eingaben Wert sollte in diesem Format sein: jjjj-mm-tt sonst wird kein Wert angezeigt.

ASP CLASSIC , ODER VBSCRIPT:

current_year = DatePart("yyyy",date) 
current_month = DatePart("m",date) 
current_day = DatePart("d",date) 

IF current_month < 10 THEN
current_month = "0"&current_month
END IF
IF current_day < 10 THEN
current_day = "0"&current_day
END IF

get_date = current_year&"-"&current_month&"-"&current_day
Response.Write get_date

Ausgabe des heutigen Datums : 2019-02-08

Dann in Ihrem html: <input type="date" value="<% =get_date %>"

PHP

verwenden Sie einfach dies: <input type="date" value="<?= date("Y-m-d"); ?>">

3voto

StefaDesign Punkte 816

Auch nach all dieser Zeit, könnte es jemandem helfen. Dies ist eine einfache JS-Lösung.

JS

  let date = new Date();
  let today = date.toISOString().substr(0, 10);
  //console.log("Today: ", today);//test
  document.getElementById("form-container").innerHTML =
    '<input type="date" name="myDate" value="' + today + '" >';//inject field

HTML

 <form id="form-container"></form>

Eine ähnliche Lösung funktioniert in Eckig ohne eine zusätzliche Bibliothek zur Konvertierung des Datumsformats. Für Angular (der Code ist aufgrund des gemeinsamen Komponentencodes gekürzt):

//so in myComponent.ts 
//Import.... @Component...etc...
date: Date = new Date();
today: String; //<- note String
//more const ...
export class MyComponent implements OnInit {
   //constructor, etc.... 
   ngOnInit() {
      this.today = this.date.toISOString().substr(0, 10);
   }
}
//so in component.html 
<input type="date" [(ngModel)]="today"  />

3voto

T J Punkte 41936

A zukunftssicher Lösung, auch eine Alternative zu .split("T")[0] die kein String-Array im Speicher erzeugt, wäre die Verwendung von String.slice() wie unten dargestellt:

new Date().toISOString().slice(0, -14);

Viele der hier gegebenen Antworten, wie zum Beispiel slice(0, 10) , substring(0, 10) usw. werden in Zukunft scheitern.
Sie verwenden Date.toJSON() die zurückgibt Date.toISOString() :

El toISOString() Methode gibt eine Zeichenkette im vereinfachten erweiterten ISO-Format (ISO 8601) zurück, die immer 24 oder 27 Zeichen lang ist ( YYYY-MM-DDTHH:mm:ss.sssZ o ±YYYYYY-MM-DDTHH:mm:ss.sssZ bzw.). Die Zeitzone ist immer Null UTC Offset, wie durch das Suffix "Z" gekennzeichnet.

Sobald die Jahreszahl 5-stellig wird, fallen diese Antworten aus.

datePickerId.value = new Date().toISOString().slice(0, -14);

<input type="date" id="datePickerId" />

3voto

pref Punkte 917

Die Rückgabe erfolgt im Format JJJJ-MM-TT wie bei ISO, aber in Ihrer Ortszeit und nicht in UTC.

function getToday() {
    return new Date().toLocaleDateString('en-CA', {
        year: 'numeric',
        month: '2-digit',
        day: '2-digit'
    });
}

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