Tarih Yardımcıları
Headless paket, bir dizi yerel Date yardımcı fonksiyonu dışa aktarır. Bunlar, dayjs veya date-fns gibi kütüphanelere olan ihtiyacı ortadan kaldırır — kütüphanenin sıfır harici tarih bağımlılığı vardır.
Tüm fonksiyonlar saftır (girdiyi değiştirmek yerine yeni Tarih nesneleri döndürürler).
Import
import { today, parseDate, startOf, endOf, add, subtract, isSame, isBefore, isAfter, diff, daysInMonth, setYear, setMonth, setDate, setHour, setMinute, setSecond, formatBasic,} from "react-date-range-picker-headless";DateUnit Tipi
Çoğu fonksiyon bir DateUnit parametresi kabul eder:
type DateUnit = "year" | "month" | "week" | "day" | "hour" | "minute" | "second" | "millisecond";Fonksiyonlar
today
Mevcut tarih/saati döndürür.
const now = today(); // new Date()parseDate
Bir değeri bir Date nesnesine ayrıştırır. Girdi hatalıysa new Date() döndürür.
parseDate("2026-03-01"); // DateparseDate(1709251200000); // Zaman damgasından tarihparseDate(existingDate); // KlonlaparseDate(null); // new Date() (varsayılan)İmza: parseDate(date?: Date | string | number | null): Date
startOf
Bir zaman biriminin başlangıcını alır.
startOf(date, "day"); // 2026-03-01 00:00:00.000startOf(date, "month"); // 2026-03-01 00:00:00.000startOf(date, "year"); // 2026-01-01 00:00:00.000startOf(date, "week"); // Haftanın başlangıcı (varsayılan Pazar)startOf(date, "week", 1); // Haftanın başlangıcı (Pazartesi)İmza: startOf(date: Date, unit: DateUnit, weekStartsOn?: number): Date
endOf
Bir zaman biriminin sonunu alır.
endOf(date, "day"); // 2026-03-01 23:59:59.999endOf(date, "month"); // 2026-03-31 23:59:59.999endOf(date, "year"); // 2026-12-31 23:59:59.999İmza: endOf(date: Date, unit: DateUnit, weekStartsOn?: number): Date
add
Bir tarihe bir miktar zaman ekler.
add(date, 1, "day"); // Yarınadd(date, 3, "month"); // 3 ay sonraadd(date, -1, "year"); // 1 yıl önceadd(date, 2, "hour"); // 2 saat sonraAy taşmasını yönetir (ör. 31 Ocak + 1 ay = 28 Şubat, 3 Mart değil).
İmza: add(date: Date, amount: number, unit: DateUnit): Date
subtract
Bir tarihten bir miktar zaman çıkarır. add(date, -amount, unit) ile eşdeğerdir.
subtract(date, 7, "day"); // 7 gün öncesubtract(date, 1, "month"); // 1 ay önceİmza: subtract(date: Date, amount: number, unit: DateUnit): Date
isSame
İki tarihin belirli bir hassasiyet biriminde aynı olup olmadığını kontrol eder.
isSame(date1, date2, "day"); // Aynı takvim günü mü?isSame(date1, date2, "month"); // Aynı ay mı?isSame(date1, date2, "year"); // Aynı yıl mı?isSame(null, date2, "day"); // false (null kontrolü)İmza: isSame(date1: Date | null | undefined, date2: Date | null | undefined, unit?: DateUnit): boolean
isBefore
İlk tarihin, belirli bir hassasiyette ikincisinden önce olup olmadığını kontrol eder.
isBefore(date1, date2, "day"); // date1 daha önceki bir günde mi?isBefore(date1, date2); // Milisaniye karşılaştırmasıİmza: isBefore(date1: Date, date2: Date, unit?: DateUnit): boolean
isAfter
İlk tarihin, belirli bir hassasiyette ikincisinden sonra olup olmadığını kontrol eder.
isAfter(date1, date2, "day"); // date1 daha sonraki bir günde mi?İmza: isAfter(date1: Date, date2: Date, unit?: DateUnit): boolean
diff
İki tarih arasındaki farkı belirli bir birimde alır.
diff(date1, date2, "day"); // Aradaki gün sayısıdiff(date1, date2, "month"); // Aradaki ay sayısıdiff(date1, date2, "year"); // Aradaki yıl sayısıİmza: diff(date1: Date, date2: Date, unit: DateUnit): number
daysInMonth
Bir tarihin ayındaki gün sayısını alır.
daysInMonth(new Date(2026, 1)); // 28 (Şubat 2026)daysInMonth(new Date(2026, 0)); // 31 (Ocak 2026)İmza: daysInMonth(date: Date): number
setYear / setMonth / setDate / setHour / setMinute / setSecond
Bir tarihin belirli bir bölümünü ayarlar ve yeni bir Tarih döndürür.
setYear(date, 2027); // Yılı 2027 olarak değiştirsetMonth(date, 5); // Haziran'a değiştir (0-indeksli)setDate(date, 15); // 15'ine değiştirsetHour(date, 14); // 14:00'e değiştirsetMinute(date, 30); // :30'a değiştirsetSecond(date, 0); // :00'a değiştirsetYear ve setMonth taşmayı yönetir (ör. artık bir yıldaki 29 Şubat, artık olmayan bir yıla ayarlandığında 28 Şubat’a sabitlenir).
İmzalar:
setYear(date: Date, year: number): DatesetMonth(date: Date, month: number): DatesetDate(date: Date, day: number): DatesetHour(date: Date, hour: number): DatesetMinute(date: Date, minute: number): DatesetSecond(date: Date, second: number): Date
formatBasic
Bir şablon dizesi kullanarak bir tarihi biçimlendirir.
formatBasic(date, "YYYY-MM-DD"); // "2026-03-01"formatBasic(date, "YYYY/MM/DD HH:mm:ss"); // "2026/03/01 14:30:00"formatBasic(date, "M/D"); // "3/1"formatBasic(date, "hh:mm A"); // Not: A belirteci desteklenmiyor, hook'tan gelen periyodu kullanınDesteklenen belirteçler:
| Belirteç | Çıktı | Örnek |
|---|---|---|
YYYY | 4 basamaklı yıl | 2026 |
MM | 2 basamaklı ay | 03 |
M | Ay (dolgu olmadan) | 3 |
DD | 2 basamaklı gün | 01 |
D | Gün (dolgu olmadan) | 1 |
HH | 2 basamaklı saat (24s) | 14 |
H | Saat (24s, dolgu olmadan) | 14 |
hh | 2 basamaklı saat (12s) | 02 |
h | Saat (12s, dolgu olmadan) | 2 |
mm | 2 basamaklı dakika | 30 |
m | Dakika (dolgu olmadan) | 30 |
ss | 2 basamaklı saniye | 05 |
s | Saniye (dolgu olmadan) | 5 |
İmza: formatBasic(date: Date, format: string): string