Schauen Sie sich den Originalbeitrag https://devaradise.com/date-in-javascript-dayjs-momentjs/ an, um ihn mit dem Inhaltsverzeichnis zu lesen
Der Umgang mit Datums- und Uhrzeitangaben ist eine häufige Aufgabe in der JavaScript-Entwicklung. Während das native Date-Objekt von JavaScript eine Vielzahl von Methoden zum Arbeiten mit Datumsangaben bietet, gibt es Szenarien, in denen die Verwendung externer Bibliotheken wie Day.js oder Moment.js Ihren Arbeitsablauf vereinfachen und robustere Lösungen bieten kann.
In diesem Artikel untersuchen wir häufige Fälle, die durch das native Date-Objekt von JavaScript gelöst werden können, und solche, die am besten von externen Bibliotheken gehandhabt werden. Wir vergleichen auch Day.js und Moment.js, um Ihnen bei der Auswahl des richtigen Tools für Ihre Anforderungen zu helfen.
Das native JavaScript-Datumsobjekt bietet eine Reihe von Methoden zum Arbeiten mit Datums- und Uhrzeitangaben. Hier sind einige häufige Anwendungsfälle, in denen das native Date-Objekt ausreicht:
const now = new Date(); // Current date and time const specificDate = new Date('2024-07-16'); // Specific date
const now = new Date(); const year = now.getFullYear(); const month = now.getMonth() + 1; // Months are zero-indexed const day = now.getDate(); const hours = now.getHours(); const minutes = now.getMinutes(); const seconds = now.getSeconds();
const now = new Date(); now.setFullYear(2025); now.setMonth(11); // December now.setDate(25); now.setHours(10); now.setMinutes(11); now.setSeconds(12);
const tomorrow = new Date(); tomorrow.setDate(tomorrow.getDate() + 1);
const now = new Date(); const dateString = now.toDateString(); // Example: 'Tue Jul 16 2024' const timeString = now.toTimeString(); // Example: '14:12:34 GMT+0200 (Central European Summer Time)'
const parsedDate = new Date(Date.parse('2024-07-16T14:12:34Z'));
const date1 = new Date('2024-07-16'); const date2 = new Date('2024-07-17'); const isSame = date1.getTime() === date2.getTime(); // false const isBefore = date1.getTime() < date2.getTime(); // true
const dayOfWeek = now.getDay(); // 0 for Sunday, 1 for Monday, etc.
const now = new Date(); const isoDate = now.toISOString(); // 2024-07-22T11:30:59.827Z const utcDate = now.toUTCString(); // Mon, 22 Jul 2024 11:30:42 GMT
const date1 = new Date('2024-01-01'); const date2 = new Date('2024-12-31'); const differenceInTime = date2 - date1; const differenceInDays = differenceInTime / (1000 * 3600 * 24); console.log(differenceInDays);
Während das native Date-Objekt die grundlegende Datumsmanipulation abdeckt, werden bestimmte Aufgaben effizienter von externen Bibliotheken wie Day.js und Moment.js erledigt. Hier sind einige Szenarien, in denen diese Bibliotheken hervorragende Leistungen erbringen:
// Day.js const Day.jsDate = Day.js().format('YYYY-MM-DD HH:mm:ss'); // Moment.js const momentDate = moment().format('YYYY-MM-DD HH:mm:ss');
// Day.js Day.js.extend(relativeTime); // require RelativeTime plugin Day.js('2024-01-01').from(Day.js('2023-01-01')); // a year ago // Moment.js moment('2024-01-01').from(moment('2023-01-01')); // a year ago
Day.js.extend(utc); Day.js.extend(timezone); Day.js('2024-07-16 14:12:34').tz('America/New_York'); // Moment.js with moment-timezone moment.tz('2024-07-16 14:12:34', 'America/New_York');
// Day.js Day.js.locale('fr'); const frenchDate = Day.js().format('LLLL'); // dimanche 15 juillet 2012 11:01 // Moment.js moment.locale('fr'); const frenchMomentDate = moment().format('LLLL'); // dimanche 15 juillet 2012 11:01
// Day.js const invalidDay.js = Day.js('invalid date'); if (!invalidDay.js.isValid()) { console.log('Invalid date'); } // Moment.js const invalidMoment = moment('invalid date'); if (!invalidMoment.isValid()) { console.log('Invalid date'); }
// Day.js with customParseFormat plugin Day.js.extend(customParseFormat); const complexDate = Day.js('05/02/69 1:02:03 PM -05:00', 'MM/DD/YY H:mm:ss A Z'); // Moment.js const complexMoment = moment('05/02/69 1:02:03 PM -05:00', 'MM/DD/YY H:mm:ss A Z');
// Day.js Day.js.extend(duration); const durationDay.js = Day.js.duration(5000); // 5 seconds console.log(durationDay.js.asMinutes()); // 0.083333... const humanizedDurationDay.js = Day.js.duration(5000).humanize(); // 'a few seconds' // Moment.js const durationMoment = moment.duration(5000); // 5 seconds console.log(durationMoment.asMinutes()); // 0.083333... const humanizedDurationMoment = moment.duration(5000).humanize(); // 'a few seconds'
Day.js und Moment.js sind zwei beliebte Bibliotheken für die Datumsmanipulation in JavaScript. Obwohl beide denselben Zweck erfüllen, weisen sie deutliche Unterschiede in Bezug auf Leistung, Funktionen und Benutzerfreundlichkeit auf. Dieser Vergleich hilft Ihnen bei der Entscheidung, welche Bibliothek für Ihr Projekt besser geeignet ist.
Feature | Day.js | Moment.js |
---|---|---|
Size | ~2KB | ~70KB |
Immutability | Yes | No |
Plugin Architecture | Yes | Limited |
Feature Set | Basic (extensible via plugins) | Comprehensive |
Timezone Support | Limited (via plugins) | Extensive (Moment Timezone) |
Ecosystem | Growing | Mature |
Documentation | Good | Extensive |
Modern Syntax | Yes | No |
API Compatibility | Similar to Moment.js | N/A |
Status | Actively maintained | Deprecated |
Plugin-Architektur
Feature-Set
Ökosystem
API-Kompatibilität
Bei der Arbeit mit Datumsangaben in JavaScript ist es wichtig, das richtige Tool für die Aufgabe auszuwählen. Native JavaScript-Datumsobjekte reichen für grundlegende Datumsmanipulationsaufgaben aus, aber für fortgeschrittenere Vorgänge bieten Bibliotheken wie Day.js und Moment.js leistungsstarke und praktische Funktionen.
Berücksichtigen Sie bei der Entscheidung zwischen Day.js und Moment.js die spezifischen Anforderungen Ihres Projekts.
Das obige ist der detaillierte Inhalt vonArbeiten mit Datum in Javascript: new Date() vs. Day.js vs. Moment.js. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!