Moment.js Çalışma Alanı
Moment.js tarih ve saat API'siyle denemeler yapmak için etkileşimli bir çalışma alanı – tarihleri biçimlendirin, ayrıştırın, manipüle edin ve canlı çıktı alın
Girdi
Çıktı
Readme
Moment.js Nedir?
Moment.js, tarihleri ayrıştırmak, doğrulamak, manipüle etmek ve biçimlendirmek için yaygın olarak kullanılan bir JavaScript kütüphanesidir. Modern alternatifler ortaya çıkmadan önce, Moment.js, JavaScript uygulamalarında tarih işleme konusunda de‑facto standart haline gelmişti. Temiz, zincirlenebilir bir API sunarak tarihlerle çalışmayı sezgisel ve basit hâle getirir. date-fns ve Luxon gibi yeni kütüphaneler bulunmasına rağmen, Moment.js hâlâ eski kod tabanlarında yoğun şekilde kullanılmakta ve hata düzeltmeleri için aktif olarak bakım yapılmaktadır. Moment.js’i anlamak, ona bağımlı mevcut projeler üzerinde çalışan geliştiriciler için çok önemlidir.
Neden bir tarih manipülasyon kütüphanesi kullanılmalı?
JavaScript’in yerel Date nesnesi, kullanımı zor bir yapıya sahiptir. Tarayıcılar arasında tutarsız davranışlar gösterir, ay indekslemesi (0‑11 yerine 1‑12) kafa karıştırıcıdır, biçimlendirme seçenekleri sınırlıdır ve yerleşik saat dilimi desteği yoktur. Moment.js gibi tarih kütüphaneleri, tutarlı ve iyi belgelenmiş bir API sağlayarak bu sorunları çözer. Gün ışığı tasarrufu geçişleri, artık yıllar ve bölge‑spesifik biçimlendirme gibi kenar durumlarını otomatik olarak yönetir; böylece geliştiriciler hataya açık tarih mantığını sıfırdan yazmaktan kurtulur.
Araç açıklaması
Moment.js Playground, Moment.js kütüphanesiyle deney yapmanız için tarayıcı tabanlı etkileşimli bir ortam sunar. JavaScript kodunu doğrudan editörde yazarak Moment.js ve Moment Timezone’a tam erişim elde edersiniz. Playground, kodunuzu yazarken (debounce ile) otomatik olarak çalıştırır ve tüm konsol çıktısını alt tarafta terminal‑stili bir panelde gösterir. Moment.js’i öğrenmek, tarih biçimlendirme dizgilerini test etmek, tarih hesaplamalarını hata ayıklamak ve zaman‑ilişkili mantığı bir geliştirme ortamı kurmadan prototiplemek için mükemmeldir.
Örnekler
Geçerli tarihi biçimlendirme:
const now = moment();
console.log(now.format("MMMM Do, YYYY"));
// Çıktı: December 30th, 2025
console.log(now.format("dddd, h:mm A"));
// Çıktı: Monday, 3:45 PMFarklı tarih biçimlerini ayrıştırma:
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)Göreceli zamanı hesaplama:
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 agoTarih aritmetiği:
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-31Sürelerle çalışma:
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 yearTarih karşılaştırma:
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")); // trueSaat dilimleriyle çalışma:
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"));Özellikler
- Tam Moment.js Kütüphanesi: Ayrıştırma, biçimlendirme, manipülasyon ve karşılaştırma dahil tüm Moment.js fonksiyonlarına erişim
- Saat Dilimi Desteği: Moment Timezone, dünya çapındaki saat dilimleriyle çalışmak için önceden yüklenmiştir
- Canlı Kod Çalıştırma: Kod, yazdıkça akıllı debounce ile otomatik olarak çalışır
- Yerleşik Terminal: Tarayıcı geliştirici araçlarını açmadan konsol çıktısını anında görüntüler
- Sözdizimi Vurgulama: JavaScript sözdizimi vurgulaması, kod okunabilirliğini artırır
- Hata Yönetimi: Çalışma zamanı hataları terminal çıktısında net bir şekilde gösterilir
Kullanım Senaryoları
- Moment.js Öğrenme: API ile deney yapın ve proje kurulumuna gerek kalmadan sonuçları anında görün
- Biçim Dizesi Testi: İhtiyacınız olan tam tarih çıktısını elde etmek için farklı format token’larını deneyin
- Tarih Hesaplama Hata Ayıklama: Uygulamanıza entegre etmeden önce karmaşık tarih aritmetiğini test edin
- Saat Dilimi Dönüşümleri: Farklı saat dilimleri arasında zamanı hızlıca dönüştürün
- Eski Kod Bakımı: Mevcut uygulamaları sürdürürken Moment.js kod parçacıklarını test edin
Yaygın Format Token’ları
| Token | Açıklama | Örnek |
|---|---|---|
YYYY |
4‑haneli yıl | 2025 |
YY |
2‑haneli yıl | 25 |
MM |
2‑haneli ay | 01‑12 |
MMM |
Kısa ay adı | Jan, Feb |
MMMM |
Tam ay adı | January |
DD |
2‑haneli gün | 01‑31 |
Do |
Sıra ekli gün | 1st, 2nd, 3rd |
dddd |
Tam hafta günü adı | Monday |
ddd |
Kısa hafta günü | Mon |
HH |
24‑saat formatı | 00‑23 |
hh |
12‑saat formatı | 01‑12 |
mm |
Dakika | 00‑59 |
ss |
Saniye | 00‑59 |
A |
AM/PM (büyük harf) | AM, PM |
a |
am/pm (küçük harf) | am, pm |
z |
Saat dilimi kısaltması | EST, PST |
Z |
Saat dilimi ofseti | +05:00 |
Yaygın Metot Referansı
| Metot | Açıklama | Örnek |
|---|---|---|
moment() |
Şu anki anı oluşturur | moment() |
format(string) |
Dizeye biçimlendirir | moment().format("YYYY-MM-DD") |
add(n, unit) |
Zaman ekler | moment().add(7, "days") |
subtract(n, unit) |
Zaman çıkarır | moment().subtract(1, "month") |
startOf(unit) |
Birimin başlangıcı | moment().startOf("week") |
endOf(unit) |
Birimin sonu | moment().endOf("month") |
fromNow() |
Göreceli zaman | moment("2025-01-01").fromNow() |
diff(moment) |
Fark | momentA.diff(momentB, "days") |
isBefore(moment) |
Öncesinde mi | momentA.isBefore(momentB) |
isAfter(moment) |
Sonrasında mı | momentA.isAfter(momentB) |
isSame(moment, unit) |
Aynı mı | momentA.isSame(momentB, "month") |
isValid() |
Geçerlilik kontrolü | moment("invalid").isValid() |
clone() |
Kopya oluşturur | moment().clone() |
tz(zone) |
Saat dilimini dönüştürür | moment().tz("America/New_York") |
Zaman Birimleri
Moment.js, add, subtract, startOf, endOf ve diff işlemleri için aşağıdaki zaman birimlerini destekler:
years/yquarters/Qmonths/Mweeks/wdays/dhours/hminutes/mseconds/smilliseconds/ms