Die getDate Methode von Datepicker gibt einen Datumstyp zurück, keine Zeichenfolge.
Sie müssen den zurückgegebenen Wert in eine Zeichenfolge formatieren, die Ihr Datumsformat verwendet. Verwenden Sie picker die format Funktion:
var startDate = $('#MilestoneStartDate').datepicker('getDate');
$.datepicker.formatDate('dd M yy', startDate);
Die vollständige Liste der Formatbezeich available here ist.
EDIT
$('#MilestoneStartDate').datepicker("getDate");
immer geben Sie das richtige Datum, wenn das Datum mit der Maus auf ein Datum Popup klicken ausgewählt, aber wenn jemand manuell schreiben oder Paste Datum in anderen Format, das gibt Ihnen das aktuelle Datum.
Um diese Situation zu behandeln, verwenden Sie den folgenden Code.
$(function(){
$('#MilestoneStartDate').datepicker({
dateFormat: 'dd M yy'
});
});
var strSelectedDate = new Date($('#MilestoneStartDate').val());
var formatedDate = $.datepicker.formatDate('dd M yy', strSelectedDate);
alert(formatedDate);
Working Demo
Per @Boris Serebrow Kommentar
Der Schlüssel ist new Date ($ ('# MilestoneStartDate') val().) - es versucht, tatsächlich zu "erraten" Das Format, also Dinge wie "2. März 2016", "2. März 2016" oder "2016, 2. März" werden korrekt geparst.
Schritt für Schritt:
Fall 1:
Hier strSelectedDate
geben Sie das Datum im Standardformat können sagen, wenn ich 02 Mar 2016
von Datum Popup wählen Sie es
Mi Mar geben 02 2016 00:00:00 GMT + 0530
Jetzt
$.datepicker.formatDate('dd M yy', strSelectedDate);
geben Sie das Datum Ihres Format wie unten
02 Mar 2016
Gehäuse: 2
Wie Sie in Ihrer Frage an, ob Benutzer manuell eingeben Datum wie 1/1/2016 strSelectedDate
geben Sie das Standarddatum wie Balg
Fr 1. Januar 2016 00:00:00 GMT + 0530
Dann
$.datepicker.formatDate('dd M yy', strSelectedDate);
geben Sie das Datum formated
01 Jan 2016
Welches Datum ist korrekt wie erwartet.
Fall 3:
Nun, wenn der Benutzer manuell ein ungültiges Datum schreiben wie 112016
dann strSelectedDate
kehrt Invalid Date
so hier können Sie einige Validierungs Client-Seite implementieren den Benutzer das richtige Datum einzugeben.
Hoffe das hilft dir.
http://stackoverflow.com/questions/4347483/jquery-datepicker-that-supports-multiple-formats. Die zweite Antwort ist eine Implementierung, die mehrere Formate erlaubt, hoffe, es hilft –
Implementation/UX weise, ich denke, es ist am einfachsten, nur Ihr beabsichtigtes Format um die Eingabe zu setzen. '(MM/TT/JJJJ)'. Zeigen Sie dann einfach einen Überprüfungsfehler an, wenn die Eingabe nicht mit dem Format übereinstimmt. Dies ist viel einfacher als der Versuch, mehrere Formate zu parsen, und ermöglicht weiterhin Benutzereingaben anstelle von Auswahlmenüs. –
@Eric Guan - können Sie an einem Beispiel zeigen, was du meinst – leora