Falsche Zeit bei Verwendung des Datumsauswahlers: Bug?

Hallo,

mein Discourse (2.6.0.beta4) ist so konfiguriert, dass die Standardzeitzone für lokale Datumsangaben auf „Europe/Paris

3 „Gefällt mir“

@j.jaffeux hast du eine Idee, was das verursachen könnte?

2 „Gefällt mir“

Ich denke, es handelt sich um eine fehlerhafte Handhabung des französischen Anführungszeichens (BBCode, wenn ich mich recht erinnere). Der Fall wurde bereits für das deutsche Locale behoben.

https://meta.discourse.org/t/locale-date-timezone-cooking-error-with-french-localization/161532

3 „Gefällt mir“

Ich entferne die Anführungszeichen von tz, das ist keine langfristige Lösung, aber… es funktioniert :grin:

2 „Gefällt mir“

Ja, entschuldigung, ich war Montag/Dienstag abwesend. Ich kann es lokal nicht nachstellen, aber ich denke, es handelt sich um denselben Fall.

Ich habe mich für diese Lösung entschieden:

Technisch gesehen ist dies eher ein Fehler im Bereich schöner Text/Markdown als ein Fehler bei lokalen Datumsangaben. Wir sollten vielleicht eine globalere Lösung dafür finden. Obwohl ich bisher nur Beschwerden im Zusammenhang mit lokalen Datumsangaben erhalten habe, vermute ich, dass dies daran liegt, dass dieser Bereich häufiger genutzt und eher manuell bearbeitet wird.

4 „Gefällt mir“

Ich glaube nicht, dass es funktioniert. Vielleicht liegt es auch an der Bedingung in Zeile 99 von discourse-local-dates.js.es6:

if (config.timezone && moment.tz.names().includes(config.timezone))

Diese ist nicht erfüllt (obwohl sie es sein sollte).

Edit: Mir ist gerade aufgefallen, dass die Korrektur in einem anderen Branch eingepflegt wurde. Ich bin gleich zurück :sweat_smile:
… also nein, ich habe es überprüft:

[date=2020-12-20 time=15:00:00 timezone=„Europe/Paris“]
[date=2020-12-20 time=15:00:00 timezone=Europe/Paris]
[date=2020-12-20 time=15:00:00 timezone="Europe/Paris"]
[date=2020-12-20 time=15:00:00 timezone=«Europe/Paris»]

sind korrekt, korrekt, falsch, falsch.

1 „Gefällt mir“

Und außerdem sind auf meiner französischen AZERTY-Tastatur die Anführungszeichen eigentlich ". Ich weiß nicht einmal, wie man « oder » ohne Kopieren und Einfügen eingibt, was wahrscheinlich normal ist :thinking:

Ich habe sicher nichts als „falsch

1 „Gefällt mir“

Es ist seltsam, ich habe 16:00 Uhr für die letzten beiden.

Da Sie das Problem nachstellen können, könnten Sie bitte hier ein Log hinzufügen: https://github.com/discourse/discourse/blob/master/plugins/discourse-local-dates/assets/javascripts/lib/discourse-markdown/discourse-local-dates.js.es6#L15

console.log(matches[1]);

Und mir genau zeigen, was Sie erhalten.

1 „Gefällt mir“

Na klar! Aber da hast du mich verloren :smile: Ich nehme an, du möchtest ein Rails-Log? Ich bin wirklich kein Experte, nur ein bisschen begeistert! Und sorry, ich habe eine Fünf als Sechs gelesen oder so – der dritte Eintrag funktioniert nur nicht, mein Fehler. Der vierte funktioniert in der Vorschau nicht, ist aber im bearbeiteten Beitrag korrekt :crazy_face:

1 „Gefällt mir“

Ich habe einen weiteren Pull-Request eingereicht. Vielleicht sollten wir damit warten, bevor du tiefer einsteigst.

2 „Gefällt mir“

Was ich feststellen konnte, ist, dass das Attribut „data-timezone

1 „Gefällt mir“

Ja, weil es die konvertierten Anführungszeichen nicht versteht. Deshalb versuche ich, sie in einen bekannten Zustand zu zwingen.

2 „Gefällt mir“

Es tut mir leid, das überhaupt zu fragen. Ich werde Sie danach wieder arbeiten lassen. Ich war der Meinung, dass das ; von « dazu führt, dass
&& moment.tz.names().includes(config.timezone) fehlschlägt.
Könnte config.timezone HTML-escaped sein?

1 „Gefällt mir“

Kein Problem, ich kann mich natürlich auch irren :smiley:

Also, was du fragst, ist im Grunde das, was ich mache, nur nicht zu dem Zeitpunkt, den du erwartest. Das könnte wahrscheinlich auch funktionieren. Zum Beispiel, vor meiner Korrektur, so etwas wie:

[date=2020-12-20 time=15:00:00 timezone=«Europe/Paris»]

würde diese Attribute im geparsten Markdown ergeben:

{"date"=>"2020-12-20", "time"=>"15:00:00", "timezone"=>"«Europe/Paris»"}

Das macht das Problem offensichtlich.

Nach meiner Korrektur erhalten wir:

{"date"=>"2020-12-20", "time"=>"15:00:00", "timezone"=>"Europe/Paris"}

Ich denke einfach, ich habe vorher nicht alle Fälle von Anführungszeichen berücksichtigt. Hast du es mit dem zweiten Commit, den ich gemacht habe, versucht?

2 „Gefällt mir“

Ja…

Aber da der Rohwert nicht

[date=2020-12-20 time=15:00:00 timezone=«Europe/Paris»]

sondern bereits

[date=2020-12-20 time=15:00:00 timezone="Europe/Paris"]

ist,
glaube ich, dass etwas „weiter unten in der Kette

1 „Gefällt mir“

Ja, vielleicht gibt es zwei Probleme – eines im Frontend und eines im Backend. Da die vorherige Korrektur den deutschen Fall definitiv verbessert hat, denke ich, dass ich dieselbe Regex auch im Frontend anwenden kann. Ich wünschte, ich könnte das Problem reproduzieren :sweat_smile:

Ich werde es morgen erledigen.

5 „Gefällt mir“

@Benjamin_D / @j.jaffeux Ist das immer noch ein Problem?

1 „Gefällt mir“

Das denke ich auch, aber ich hänge ein wenig hinterher. Ich bin immer noch bei 2.6.0 beta5 :flushed: Allerdings habe ich seit Oktober keinen Commit zu diesem Problem gesehen.