Code: Select all
import dayjs from "dayjs";
import utc from "dayjs/plugin/utc";
import timezone from "dayjs/plugin/timezone";
dayjs.extend(utc);
dayjs.extend(timezone);
function dateFormat(datetimeValue) {
let date = dayjs(datetimeValue);
if (!date.isValid() && typeof datetimeValue === "string") {
datetimeValue = datetimeValue.replace(" ", "T"); // Replace space with 'T'
date = dayjs(datetimeValue);
}
return date.format("YYYY-MM-DD HH:mm:ss.SSSZ");
}
Meine Fragen sind:
- Warum kann Day.js diese Datumszeichenfolge in manchen Umgebungen nicht analysieren?
- Ist das Ersetzen des Leerzeichens durch ein T ausreichend, um dieses Problem zu beheben?
- Sollte ich den Zeitzonenversatz normalisieren (z. B. (07:00 bis +07:00)? Wenn ja, wie kann ich dies effektiv implementieren?
Wie gehe ich am besten mit ungültigen Datumszeichenfolgen in Day.js um, insbesondere bei der Arbeit mit API-Daten?
Ungültiges Datum
Um dies zu beheben, habe ich versucht, das Leerzeichen zwischen Datum und Uhrzeit durch ein
zu ersetzen
Code: Select all
datetimeValue = datetimeValue.replace(" ", "T");
Ich habe erwartet, dass Day.js die Datumszeichenfolgen korrekt analysiert und es mir ermöglicht, sie in lesbare Formate wie „ zu formatieren. 1. Nov. 2023".
T:erwartetes Ergebnis