Datum im Datum des Eingabetyps einstellen


104
<input id="datePicker" type="date" />​

Ich werde das heutige Datum in Datepicker-Eingabetyp Datum in Chrom einstellen .

$(document).ready( function() {
    var now = new Date();
    var today = now.getDate()  + '/' + (now.getMonth() + 1) + '/' + now.getFullYear();
    alert(today);
    $('#datePicker').val(today);
});​

aber es funktioniert nicht

Edit This jsFiddle - Bitte versuchen Sie es in Chrom.


2
Wenn Sie ein Datum auf Ihrer Geige auswählen und den Ergebnisrahmen überprüfen, $('#datePicker').val();geben "2012-09-10"Sie ein

Es funktioniert in Chrom an meinem Ende. Was meinst du genau damit its not working?
AdityaParab

versuchen Sie { currentText: "Now" }
:,

an mir arbeiten ... was ist das Problem?
Netorica

1
@JigarPandya fr_FR (@ user108, ​​siehe auch stackoverflow.com/a/3496622/180100 )

Antworten:


158

Geigenlink: http://jsfiddle.net/7LXPq/93/

Zwei Probleme dabei:

  1. Die Datumssteuerung in HTML 5 wird im Format Jahr - Monat - Tag akzeptiert, wie wir es in SQL verwenden
  2. Wenn der Monat 9 ist, muss er einfach auf 09 und nicht auf 9 gesetzt werden. Es gilt also auch für das Tagesfeld.

Bitte folgen Sie dem Geigen-Link für die Demo:

var now = new Date();

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

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

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

4
Antwort nach 2012: Überprüfen Sie meine Antwort auf eine unterstützte Lösung in einer Codezeile.
Oliv Utilo

@ OlivUtilo - sicher, aber Ihre Antwort liefert manchmal falsche Ergebnisse.
RobG

Du hast mir Zeit gespart, vielen Dank
Dip Surani

128

document.getElementById("datePicker").valueAsDate = new Date()

sollte arbeiten.


6
Dies ist die beste Lösung, die ich bisher gefunden habe - funktioniert auf Android 4.0.3
Ben Clayton


1
Ich habe festgestellt, dass dies in Safari aus irgendeinem Grund nicht funktioniert :(
james_alvarez

Getestet in Chrome und Edge und funktioniert einwandfrei. Wie @Skipjack sagte, ist eine großartige Antwort!
Arun

23

Update: Ich mache das mit date.toISOString().substr(0, 10). Gibt das gleiche Ergebnis wie die akzeptierte Antwort und hat gute Unterstützung.


2
Funktioniert in Safari
james_alvarez

4
Hinweis: Dies gibt ein Datum in der UTC-Zeitzone an. Im Gegensatz dazu verwendet die Top-Antwort die Ortszeit.
Qwertie

@Qwertie - beide arbeiten mit demselben DateObjekt (erstellt mit neuem Date oder Date.now, die die Zeitzone vom Browser erben). Die Verwendung von toISOString oder der getDate-Funktionen löst (glaube ich) dasselbe auf. Ich denke, dies sollte das gewünschte Verhalten haben ...
Oliv Utilo

1
@ OlivUtilo - Nein, dies gilt nicht für den Zeitraum des Zeitzonenversatzes für den Host.
RobG

Wie Qwertie sagt, gibt dies möglicherweise die falsche Antwort, wenn Sie ein Datum ohne Uhrzeit verwenden. zB Sa Sep 01 2018 00:00:00 GMT + 0100 wird in "2018-08-31" umgewandelt
Havlock

14
var today = new Date().toISOString().split('T')[0];
$("#datePicker").val(today);

Der obige Code funktioniert.


12

Für mich ist der kürzeste Weg, um dieses Problem zu lösen, moment.js zu verwenden und dieses Problem in nur 2 Zeilen zu lösen.

var today = moment().format('YYYY-MM-DD');
$('#datePicker').val(today);

1
ja genau wie $ ('# datePicker'). val (moment (). format ('JJJJ-MM-TT'));
Umair Khalid

2
Für Personen, die mit Moment nicht vertraut sind, wenn Sie ein beliebiges Javascript Date-Objekt mit moment () var yourFormattedDate= moment(yourDate).format('YYYY-MM-DD'); $('#datePicker').val(yourFormattedDate);
formatieren möchten


1

Normalerweise erstelle ich diese beiden Hilfsfunktionen, wenn ich Datumseingaben verwende:

// date is expected to be a date object (e.g., new Date())
const dateToInput = date =>
  `${date.getFullYear()
  }-${('0' + (date.getMonth() + 1)).slice(-2)
  }-${('0' + date.getDate()).slice(-2)
  }`;

// str is expected in yyyy-mm-dd format (e.g., "2017-03-14")
const inputToDate = str => new Date(str.split('-'));

Sie können dann den Datumseingabewert wie folgt einstellen:

$('#datePicker').val(dateToInput(new Date()));

Und rufen Sie den ausgewählten Wert wie folgt ab

const dateVal = inputToDate($('#datePicker').val())

0

Datetimepicker benötigt immer das Eingabeformat JJJJ-MM-TT. Das Anzeigeformat Ihres Modells oder die Datumszeit Ihres lokalen Systems sind ihm egal. Das Ausgabeformat der Datetime-Auswahl ist jedoch das von Ihnen gewünschte (Ihr lokales System). In meinem Beitrag gibt es ein einfaches Beispiel .


-5

Jquery-Version

var currentdate = new Date();

$('#DatePickerInputID').val($.datepicker.formatDate('dd-M-y', currentdate));

4
$.datepickerist nicht Standard jQuery. Sie verwenden ein Plugin und ohne zu sagen, welches, ist diese Antwort nutzlos.
Emile Bergeron
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.