Moment.js Playground
Διαδραστικό playground για πειραματισμό με Moment.js API ημερομηνίας και ώρας - μορφοποίηση, ανάλυση, χειρισμός ημερομηνιών με ζωντανή έξοδο
Είσοδος
Έξοδος
Readme
Τι είναι το Moment.js;
Το Moment.js είναι μια ευρέως χρησιμοποιούμενη βιβλιοθήκη JavaScript για ανάλυση, επικύρωση, χειρισμό και μορφοποίηση ημερομηνιών. Πριν εμφανιστούν σύγχρονες εναλλακτικές λύσεις, το Moment.js ήταν το πρότυπο για τον χειρισμό ημερομηνιών σε εφαρμογές JavaScript. Παρέχει ένα καθαρό, αλυσιδωτό API που κάνει τη δουλειά με ημερομηνίες διαισθητική και απλή. Ενώ υπάρχουν νεότερες βιβλιοθήκες όπως date-fns και Luxon, το Moment.js παραμένει ευρέως χρησιμοποιούμενο σε παλαιές βάσεις κώδικα και εξακολουθεί να συντηρείται ενεργά για διορθώσεις σφαλμάτων. Η κατανόηση του Moment.js είναι απαραίτητη για τους προγραμματιστές που εργάζονται με υπάρχοντα έργα που βασίζονται σε αυτό.
Γιατί να χρησιμοποιήσετε μια βιβλιοθήκη χειρισμού ημερομηνιών;
Το εγγενές αντικείμενο Date του JavaScript είναι περιδόξως δύσκολο στη χρήση. Έχει ασυνεπή συμπεριφορά σε διάφορα προγράμματα περιήγησης, συγκεχυμένη ευρετηρίαση μηνών (0-11 αντί 1-12), περιορισμένες επιλογές μορφοποίησης και καμία ενσωματωμένη υποστήριξη ζωνών ώρας. Οι βιβλιοθήκες ημερομηνιών όπως το Moment.js επιλύουν αυτά τα προβλήματα παρέχοντας ένα συνεπές, καλά τεκμηριωμένο API. Χειρίζονται αυτόματα περιπτώσεις ακμής όπως μεταβάσεις θερινής ώρας, δίσεκτα έτη και μορφοποίηση ειδική για τοπικές ρυθμίσεις, εξοικονομώντας στους προγραμματιστές τη συγγραφή επιρρεπούς σε σφάλματα λογικής ημερομηνιών από την αρχή.
Περιγραφή εργαλείου
Το Moment.js Playground είναι ένα διαδραστικό περιβάλλον που βασίζεται σε προγράμματα περιήγησης για πειραματισμό με τη βιβλιοθήκη Moment.js. Γράψτε και εκτελέστε κώδικα JavaScript απευθείας στο πρόγραμμα επεξεργασίας με πλήρη πρόσβαση στο Moment.js και Moment Timezone. Το playground εκτελεί αυτόματα τον κώδικά σας καθώς πληκτρολογείτε (με debouncing) και εμφανίζει όλη την έξοδο της κονσόλας σε ένα τερματικό παρόμοιο πάνελ παρακάτω. Είναι τέλειο για την εκμάθηση του Moment.js, τη δοκιμή συμβολοσειρών μορφοποίησης ημερομηνιών, τον εντοπισμό σφαλμάτων υπολογισμών ημερομηνιών και τον πρωτοτυπισμό λογικής που σχετίζεται με το χρόνο χωρίς να ρυθμίσετε ένα περιβάλλον ανάπτυξης.
Παραδείγματα
Μορφοποίηση της τρέχουσας ημερομηνίας:
const now = moment();
console.log(now.format("MMMM Do, YYYY"));
// Έξοδος: December 30th, 2025
console.log(now.format("dddd, h:mm A"));
// Έξοδος: Monday, 3:45 PMΑνάλυση διαφορετικών μορφών ημερομηνιών:
const date1 = moment("2025-12-25", "YYYY-MM-DD");
const date2 = moment("25/12/2025", "DD/MM/YYYY");
const date3 = moment("Dec 25, 2025", "MMM D, YYYY");
console.log(date1.format("dddd")); // Thursday
console.log(date2.isValid()); // true
console.log(date3.month()); // 11 (0-indexed)Υπολογισμός σχετικού χρόνου:
const past = moment().subtract(3, "days");
const future = moment().add(2, "weeks");
console.log(past.fromNow()); // 3 days ago
console.log(future.fromNow()); // in 14 days
console.log(past.from(future)); // 17 days agoΑριθμητική ημερομηνιών:
const date = moment("2025-01-15");
const nextMonth = date.clone().add(1, "month");
const lastWeek = date.clone().subtract(1, "week");
const endOfMonth = date.clone().endOf("month");
console.log(nextMonth.format("YYYY-MM-DD")); // 2025-02-15
console.log(lastWeek.format("YYYY-MM-DD")); // 2025-01-08
console.log(endOfMonth.format("YYYY-MM-DD")); // 2025-01-31Εργασία με διάρκειες:
const start = moment("2025-01-01");
const end = moment("2025-12-31");
const duration = moment.duration(end.diff(start));
console.log(duration.asDays() + " days"); // 364 days
console.log(duration.asWeeks() + " weeks"); // 52 weeks
console.log(duration.humanize()); // a yearΣύγκριση ημερομηνιών:
const date1 = moment("2025-06-15");
const date2 = moment("2025-12-25");
console.log(date1.isBefore(date2)); // true
console.log(date1.isAfter(date2)); // false
console.log(date1.isSame(date2, "year")); // true
console.log(date1.isBetween("2025-01-01", "2025-08-01")); // trueΕργασία με ζώνες ώρας:
const now = moment();
console.log(now.tz("America/New_York").format("h:mm A z"));
console.log(now.tz("Europe/London").format("h:mm A z"));
console.log(now.tz("Asia/Tokyo").format("h:mm A z"));Χαρακτηριστικά
- Πλήρης Βιβλιοθήκη Moment.js: Πρόσβαση σε όλες τις συναρτήσεις Moment.js συμπεριλαμβανομένης της ανάλυσης, μορφοποίησης, χειρισμού και σύγκρισης
- Υποστήριξη Ζωνών Ώρας: Το Moment Timezone είναι προ-φορτωμένο για εργασία με ζώνες ώρας σε όλο τον κόσμο
- Εκτέλεση Ζωντανού Κώδικα: Ο κώδικας εκτελείται αυτόματα καθώς πληκτρολογείτε με έξυπνο debouncing
- Ενσωματωμένο Τερματικό: Προβάλετε την έξοδο της κονσόλας αμέσως χωρίς να ανοίξετε τα εργαλεία ανάπτυξης του προγράμματος περιήγησης
- Επισήμανση Σύνταξης: Επισήμανση σύνταξης JavaScript για καλύτερη αναγνωσιμότητα κώδικα
- Χειρισμός Σφαλμάτων: Τα σφάλματα χρόνου εκτέλεσης εμφανίζονται ξεκάθαρα στην έξοδο του τερματικού
Περιπτώσεις χρήσης
- Εκμάθηση Moment.js: Πειραματιστείτε με το API και δείτε αποτελέσματα αμέσως χωρίς ρύθμιση έργου
- Δοκιμή Συμβολοσειράς Μορφοποίησης: Δοκιμάστε διαφορετικά tokens μορφοποίησης για να επιτύχετε την ακριβή έξοδο ημερομηνίας που χρειάζεστε
- Εντοπισμός Σφαλμάτων Υπολογισμού Ημερομηνιών: Δοκιμάστε σύνθετη αριθμητική ημερομηνιών πριν την εφαρμογή στην εφαρμογή σας
- Μετατροπές Ζωνών Ώρας: Γρήγορη μετατροπή ώρας μεταξύ διαφορετικών ζωνών ώρας
- Συντήρηση Παλαιού Κώδικα: Δοκιμάστε αποσπάσματα κώδικα Moment.js κατά τη συντήρηση υπάρχουσων εφαρμογών
Κοινά Tokens Μορφοποίησης
| Token | Περιγραφή | Παράδειγμα |
|---|---|---|
YYYY |
Έτος 4 ψηφίων | 2025 |
YY |
Έτος 2 ψηφίων | 25 |
MM |
Μήνας 2 ψηφίων | 01-12 |
MMM |
Σύντομο όνομα μήνα | Jan, Feb |
MMMM |
Πλήρες όνομα μήνα | January |
DD |
Ημέρα 2 ψηφίων | 01-31 |
Do |
Ημέρα με κανονικό | 1st, 2nd, 3rd |
dddd |
Πλήρες όνομα ημέρας | Monday |
ddd |
Σύντομη ημέρα | Mon |
HH |
Ώρα 24 ωρών | 00-23 |
hh |
Ώρα 12 ωρών | 01-12 |
mm |
Λεπτά | 00-59 |
ss |
Δευτερόλεπτα | 00-59 |
A |
AM/PM (κεφαλαία) | AM, PM |
a |
am/pm (πεζά) | am, pm |
z |
Συντομογραφία ζώνης | EST, PST |
Z |
Μετατόπιση ζώνης | +05:00 |
Αναφορά Κοινών Μεθόδων
| Μέθοδος | Περιγραφή | Παράδειγμα |
|---|---|---|
moment() |
Δημιουργία τρέχουσας στιγμής | moment() |
format(string) |
Μορφοποίηση σε συμβολοσειρά | moment().format("YYYY-MM-DD") |
add(n, unit) |
Προσθήκη χρόνου | moment().add(7, "days") |
subtract(n, unit) |
Αφαίρεση χρόνου | moment().subtract(1, "month") |
startOf(unit) |
Αρχή μονάδας | moment().startOf("week") |
endOf(unit) |
Τέλος μονάδας | moment().endOf("month") |
fromNow() |
Σχετικός χρόνος | moment("2025-01-01").fromNow() |
diff(moment) |
Διαφορά | momentA.diff(momentB, "days") |
isBefore(moment) |
Είναι πριν | momentA.isBefore(momentB) |
isAfter(moment) |
Είναι μετά | momentA.isAfter(momentB) |
isSame(moment, unit) |
Είναι ίδιο | momentA.isSame(momentB, "month") |
isValid() |
Έλεγχος εγκυρότητας | moment("invalid").isValid() |
clone() |
Δημιουργία αντιγράφου | moment().clone() |
tz(zone) |
Μετατροπή ζώνης | moment().tz("America/New_York") |
Μονάδες Χρόνου
Το Moment.js υποστηρίζει αυτές τις μονάδες χρόνου για τις λειτουργίες add, subtract, startOf, endOf και diff:
years/yquarters/Qmonths/Mweeks/wdays/dhours/hminutes/mseconds/smilliseconds/ms