Ich möchte das Datum als formatieren mm/dd/yyyy
. Ich habe folgendes versucht und nichts davon funktioniert für mich. Kann mir jemand dabei helfen?
Referenz: UI-Datum
<input ui-date ui-date-format="mm/dd/yyyy" ng-model="valueofdate" />
<input type="date" ng-model="valueofdate" />
angularjs
date
format
date-format
datefilter
user16
quelle
quelle
ui-date-format="mm/dd/yyyy"
ganz zu entfernen ? Es sieht so aus, als ob das Standardverhalten ohne diese Option das ist, was Sie wollen.$formatters
und$parsers
gemäß dieser Antwort löste mein ähnliches Problem.Antworten:
Angular.js verfügt über einen integrierten Datumsfilter.
Demo
Sie können die unterstützten Datumsformate in der Quelle für den Datumsfilter anzeigen .
bearbeiten :
Wenn Sie versuchen, das richtige Format im Datepicker zu erhalten (nicht klar, ob Sie den Datepicker verwenden oder nur den Formatierer verwenden), finden Sie diese unterstützten Formatzeichenfolgen hier: https://api.jqueryui.com/datepicker/
quelle
Wenn Sie kein Eingabefeld haben, sondern nur ein Zeichenfolgendatum mit einer geeigneten Formatierung anzeigen möchten, können Sie einfach Folgendes auswählen:
und in der js-Datei verwenden Sie:
Dadurch wird das Datum in der Zeichenfolge in ein neues Datumsobjekt in Javascript konvertiert und das Datum im Format MM / TT / JJJJ angezeigt.
Ausgabe: 15.12.2014
Bearbeiten
Wenn Sie ein Zeichenfolgendatum im Format "2014-12-19 20:00:00" verwenden (von einem PHP-Backend übergeben), sollten Sie den Code in den folgenden Code ändern: https://stackoverflow.com / a / 27616348/1904479
Weiteres Hinzufügen
von Javascript können Sie den Code wie folgt einstellen:
Wenn Sie bereits ein Datum bei sich haben, können Sie den folgenden Code verwenden, um das aktuelle Systemdatum abzurufen:
Weitere Informationen zu Datumsformaten finden Sie unter: https://docs.angularjs.org/api/ng/filter/date
quelle
Ich benutze dies und es funktioniert gut.
quelle
Dies ist nicht genau das, wonach Sie fragen - aber Sie könnten versuchen, ein Datumseingabefeld in HTML zu erstellen, etwa:
Um dies dann auf der Seite zu drucken, die Sie verwenden würden:
Schließlich habe ich in meinem Controller eine Methode deklariert, die aus dem Eingabewert ein Datum erstellt (das in Chrome anscheinend 1 Tag später analysiert wird):
Da haben Sie es also. Um zu sehen, wie das Ganze funktioniert, sehen Sie den folgenden Plunker: http://plnkr.co/edit/8MVoXNaIDW59kQnfpaWW?p=preview. Viel Glück!
quelle
Das wird funktionieren:
HINWEIS: Sobald Sie diese ersetzen, wird das verbleibende Datum / Millis in das angegebene Forum konvertiert.
quelle
siehe Winkel
date
api: AngularJS API: DatumDer Winkelfilter
date
:Verwendung:
Beispiel:
Code:
Ergebnis:
quelle
Ich benutze Filter
dann
quelle
Übergeben Sie einfach das UTC-Datumsformat von Ihrem serverseitigen Code an die clientseitige
und verwenden Sie die folgende Syntax -
quelle
Nachdem ich mir alle oben genannten Lösungen angesehen hatte, war das Folgende die schnellste Lösung für mich. Wenn Sie eckiges Material verwenden:
So stellen Sie das Format ein:
Bearbeiten: Sie müssen auch das ParseDate für die Eingabe eines Datums festlegen (aus dieser Antwort ändern Sie das Format von md-datepicker in Angular Material ).
quelle
Hier lautet der Controller-Name "myController" und der App-Name "myApp".
Das Ergebnis sieht folgendermaßen aus: - * 29.10.2010 * 01.03.2013
quelle
Ok, das Problem scheint aus dieser Zeile zu stammen:
https://github.com/angular-ui/ui-date/blob/master/src/date.js#L106 .
Eigentlich ist diese Zeile die Bindung mit der jQuery-Benutzeroberfläche, an der das Datenformat eingefügt werden soll.
Wie Sie sehen können,
var opts
gibt es keine EigenschaftdateFormat
mit dem Wert aus dem ng-date-Format, wie Sie es sich vorstellen können.Auf jeden Fall hat die Direktive eine Konstante, die aufgerufen wird
uiDateConfig
, um Eigenschaften hinzuzufügenopts
.Die flexible Lösung (empfohlen):
Von hier aus können Sie sehen, dass Sie einige Optionen einfügen können, die in die Direktive eine Controller-Variable mit den Optionen jquery ui einfügen.
Die fest codierte Lösung:
Wenn Sie diesen Vorgang nicht ständig wiederholen möchten, ändern Sie den Wert von
uiDateConfig
in date.js in:quelle
Ich hatte das gleiche Problem und dachte wie in den obigen Kommentaren, dass es eine native Methode in JavaScript geben muss. Die Sache ist,
new Date(valueofdate)
ein Date-Objekt zurückzugeben.Überprüfen Sie jedoch http://www.w3schools.com/js/js_date_formats.asp , den Teil, in dem die führende Null steht. Ein Datum aus einem String, zum Beispiel ein Echo aus PHP, muss wie folgt aussehen:
Dies übergibt zum Beispiel einen String:
'1999-3-3'
und JavaScript analysiert ein Objekt mit dem richtigen Format mitLink zu PHP für Datumsformate: http://www.w3schools.com/php/func_date_date_format.asp .
quelle
ng-bind="reviewData.dateValue.replace('/Date(','').replace(')/','') | date:'MM/dd/yyyy'"
Verwenden Sie dies sollte gut funktionieren. :) Die Felder reviewData und dateValue können geändert werden, da Ihr Parameter rest gleich bleiben kann
quelle
quelle
quelle