1

Ich verwende die Bootstrap 3 Datepicker, die Momentjs verwendet, und in its documentation heißt es auf Momentjs's documentation für gültige Formate beziehen.Verwendung von String-Literalen in einem Moment.js-abhängige Datepicker vermasselt einige Optionen

Keine dieser Dokumentationen gibt explizit an, dass ich ein Zeichenfolgenliteral im Format verwenden darf. Die Zeichenfolge ich will, ist at, so dass ich die Datetime angezeigt werden kann als:

December 31st, 1999 at 23:59

Die Stringliteral jedoch nicht funktioniert, und ich habe es geschafft, die Datum und Uhrzeit-Picker Arbeit zu bekommen, lesen Sie den Standardwert richtig, aktualisieren sie corrently, und legt den richtigen Wert, indem Sie die folgenden format Einstellmöglichkeit:

format: "MMMM D, YYYY \\a\\t HH:mm"

aber eine Konsequenz, dies zu tun, ist, dass die AM/PM-Taste nun in dem picker UI zeigt, auch obwohl die Zeit s hown im Eingabe-Element wird im 24-Stunden-Format angezeigt (die Schnittstelle für die Auswahl von Zeiten zeigt das 12-Stunden-Format, aber die resultierende Ausgabe ist im 24-Stunden-Format).

Der Datepicker bietet nicht explizit eine Option zum Anzeigen der Uhrzeit in einem 12- oder 24-Stunden-Format, sondern stattdessen a in format, um den AM/PM-Wert anzuzeigen. Dies ist die a, die ich brauche in der at Zeichenfolge, und ich kann es nicht bekommen (oder Trick es), dass nicht als AM/PM-Konfigurationsoption zu nehmen.

Kann ich das umgehen und das Literal at in meinem Format behalten, während die AM/PM-Schaltfläche in der Benutzeroberfläche nicht angezeigt wird?

bearbeiten über die mögliche doppelte:

Gleiche wie bowheart Vorschlag, es löst nicht, was wie nur ein Fehler am Ende sein könnte scheint. Das Escapen der Zeichen funktioniert gut, aber als Nebeneffekt wird eine unerwünschte Option aktiviert.

+0

Mögliche Duplikate von [Füge benutzerdefinierten Text zum Ausgabetextfeld in bootstrap datetimepicker hinzu] (https://stackoverflow.com/questions/43097158/add-custom-text-to-the-output-text-field-in- bootstrap-datetimepicker) – VincenzoC

+0

@VincenzoC Genauso wie Bowhearts Vorschlag, es löst nicht, was so aussieht, könnte am Ende ein Fehler sein. Das Escapen der Zeichen funktioniert gut, aber als Nebeneffekt wird eine unerwünschte Option aktiviert. – 3Nex

+0

Ich stimme Ihnen zu, ich habe es als mögliches Duplikat genau markiert, weil sowohl das Problem als auch die vorgeschlagene Lösung die gleichen sind wie der verlinkte Beitrag (ich wollte Ihnen einfach einen Link geben, wo das gleiche Problem diskutiert wird). Wie auch immer ich bemerkte, dass ich den falschen Link gepostet habe, [hier] (https://stackoverflow.com/q/43115451/4131048) können Sie eine Antwort finden, die besagt, dass dies ein bekanntes Problem der Komponente ist und es einen Link zu der Öffnen Sie die Pull-Anforderung, die versucht, das Problem zu beheben. – VincenzoC

Antwort

1

Ich nehme an, Sie beziehen sich auf escaping characters in momentjs?

Alles in eckigen Klammern eingeschlossen – [] – wird escaped. Also:

$('#my-picker').datetimepicker({ 
    format: 'MMMM D, YYYY [at] HH:mm' 
}) 

sollte das sein, was Sie suchen.

+0

Danke für den Vorschlag, aber das selbe passiert leider. Ich bekomme das 'at' in der Ausgabe, aber der Datepicker zeigt immer noch die AM/PM-Taste.Ich schätze, es könnte mehr vom Fehler des datepicker-Plugins herrühren, als das Momentjs-Format korrekt zu verwenden. – 3Nex

+0

Ah, du meinst die 'togglePeriod' Taste. Dann ist deine Antwort ja, das ist ein Manko des Plugins. Reichen Sie eine Pull-Anfrage ein, suchen Sie eine andere oder erstellen Sie eine eigene. – bowheart

Verwandte Themen