Angular.js <input type="date"> ändern Sie das format der übermittelten Wert
<label>From</label>
<input type="date" ng-model="startDate"/>
<label>To</label>
<input type="date" ng-model="endDate"/>
<button class="btn btn-success" ng-click="getStatistics(startDate, endDate)">Update</button>
**JS***
$scope.getStatistics = function(startDate, endDate) {
$http.get('/admin/api/stats?start=' + startDate + '&end=' + endDate).success(function(data) {
$scope.stats = data;
});
}
Den code oben schieben startDate und endDate Wert auf die url, aber das problem das ich habe ist, dass die übermittelten Wert ist wie 2014-12-01-und ich will, dass mein format 01-05-2014
Irgendwelche Vorschläge?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Leider, Browser, Umsetzung eines bestimmten element-Typ für die Behandlung von Datumsangaben (wie Chrome) verwenden der OS-Datum-format und keine, die ich bewusst bin, lassen Sie das format geändert haben (es ist auch nicht in der W3C-spec). Darüber hinaus wird, wenn der browser nicht unterstützt wird (die meisten), es verwendet einen normalen text-input, sondern akzeptiert nur Daten in ISO-8601-format, das macht die Sache noch schlimmer.
Ich persönlich vermeiden
type="date"
weil, wie es ist, es ist ziemlich wertlos, es sei denn, du bist auf einem mobilen Gerät, das es unterstützt (wie iOS). Also, wenn Sie können, verwenden Sie einen text-input, und wenn Sie wollen, es zu konvertieren, den text-Wert in ein date-Objekt, weisen Sie das Modell, neu formatieren es nach aktualisiert wird, müssen Sie zu finden und schreiben Sie eine Richtlinie, um dies zu tun. Es ist die UI-Bootstrap-Datum-picker, aber es funktioniert nicht formatieren Sie das Datum, für Sie und bringt mehr Zeug als Sie vielleicht brauchen. Möglicherweise gibt es andere, auch.Aber im Geiste der Beantwortung Ihrer Frage, ich habe einen demo-Richtlinie, die beide formatiert das eingegebene Datum im format Ihrer Wahl (mit Angular ist
$date
- filter). Es werde neu formatieren auf einfügen, Unschärfe/ändern, oder nach einer kurzen pause der Inaktivität, nach der Eingabe ein Datum in (letztere kann nicht besonders gut funktionieren in der realen Welt, aber es sieht irgendwie cool. nehmen Sie es aus, wenn es etwas merkwürdig ist). Das andere Defizit ist, es verwendet die Standardeinstellung des Browsers Mechanismus zum analysieren einerDate
. Wenn dies nicht ausreichend ist, ersetzen Sie es mit etwas, das ist. Ich bin sicher, es ist weit entfernt von der Serienreife, aber es ist ein Anfang. Wenn es hilfreich ist genug, ich werde es in ein formales Modul auf Github.Verwendung:
Gehören die Richtlinie von dieser plunk in-Modul, dann in Ihre HTML verwenden
Gut, die Eingangs-Datum können Sie ein Datum, um den ISO-format. Wenn Sie möchten, um das Datum zu formatieren, würden Sie wahrscheinlich brauchen eine Funktion wie diese :
Ich +1 auf den Monat, weil getMonth gibt Sie eine Zahl zwischen 0 und 11.
Die slice(-2) ist für die führende 0.
Filter-Konzept
oder im controller
Datum, filtern und formatieren