Το Moment.js είναι μια κλασική βιβλιοθήκη JavaScript για ανάλυση, επικύρωση, χειρισμό και μορφοποίηση ημερομηνιών.
Ανάλυση Ημερομηνιών
// Ανάλυση τρέχουσας χρονικής στιγμής
const now = moment();
// Ανάλυση με ρητή συμβολοσειρά μορφοποίησης
const m = moment('2026-10-25', 'YYYY-MM-DD');
// Ανάλυση Unix timestamp (δευτερόλεπτα έναντι χιλιοστών)
moment.unix(1730000000); // από δευτερόλεπτα
moment(1730000000000); // από χιλιοστά δευτερολέπτου
// Έλεγχος εγκυρότητας
m.isValid(); // -> true
Διακριτικά Μορφοποίησης
m.format(); // "2026-10-25T00:00:00+08:00" (// Μορφή ISO 8601)
m.format('dddd'); // "Sunday"
m.format('MMM Do YY'); // "Oct 25th 26"
m.fromNow(); // "// Σχετικός χρόνος (π.χ. πριν 3 ώρες)"
m.calendar(); // "// Μορφή ημερολογίου"
Πίνακας Διακριτικών Ημερομηνίας
| Διακριτικό | Εύρος Εξόδου | Περιγραφή |
|---|---|---|
YYYY |
2026 |
4-digit year |
YY |
26 |
2-digit year |
MM |
01..12 |
2-digit month |
MMM |
Jan..Dec |
Short month name |
MMMM |
January..December |
Full month name |
DD |
01..31 |
2-digit day of month |
Do |
1st..31st |
Day of month with ordinal |
d |
0..6 |
Day of week (0 is Sunday) |
ddd |
Sun..Sat |
Short day of week |
dddd |
Sunday..Saturday |
Full day of week |
Q |
1..4 |
Quarter of the year |
Πίνακας Διακριτικών Ώρας
| Διακριτικό | Εύρος Εξόδου | Περιγραφή |
|---|---|---|
HH |
00..23 |
24-hour hour (2-digit) |
H |
0..23 |
24-hour hour (1-digit) |
hh |
01..12 |
12-hour hour (2-digit) |
mm |
00..59 |
Minute (2-digit) |
ss |
00..59 |
Second (2-digit) |
SSS |
000..999 |
Milliseconds (3-digit) |
A |
AM / PM |
Uppercase meridiem |
a |
am / pm |
Lowercase meridiem |
Z |
+08:00 |
Difference from UTC |
Χειρισμός Ημερομηνιών
Τα αντικείμενα Moment είναι μεταλλάξιμα (mutable). Οι λειτουργίες τροποποιούν απευθείας το αντικείμενο:
// Πρόσθεση και αφαίρεση
moment().add(7, 'days');
moment().subtract(1, 'month');
// Ορισμός σε όριο χρονικής μονάδας
moment().startOf('day'); // 00:00:00.000 σήμερα
moment().endOf('month'); // 23:59:59.999 τελευταία ημέρα μήνα
// Κλωνοποίηση για αποφυγή ανεπιθύμητης μετάλλαξης
const original = moment();
const nextWeek = original.clone().add(7, 'days');
Προεπιλογές Τοπικής Μορφοποίησης
| Μορφή | Παράδειγμα Εξόδου |
|---|---|
LT |
8:30 PM |
LTS |
8:30:25 PM |
L |
10/25/2026 |
LL |
October 25, 2026 |
LLL |
October 25, 2026 8:30 PM |
LLLL |
Sunday, October 25, 2026 8:30 PM |
Σύγχρονες Εναλλακτικές
Το Moment.js βρίσκεται σε κατάσταση συντήρησης. Προτεινόμενες εναλλακτικές:
- date-fns: Αμετάβλητες, αρθρωτές συναρτήσεις με υποστήριξη tree-shaking.
- Day.js: Ελαφριά βιβλιοθήκη 2KB με σχεδόν πανομοιότυπο API.
- Luxon: Σύγχρονη βιβλιοθήκη από τους δημιουργούς του Moment βασισμένη στο Intl.
- Native
Intl.DateTimeFormat: Ενσωματωμένο σε σύγχρονους browsers και Node.js χωρίς εξαρτήσεις.