Skip to content

Date

Fonctions pour manipuler des dates et heures via le type propriétaire TheDate (type TheDate = `date${number}${"-" | "+"}). Ce format sérialisable encode un timestamp Unix sécurisé, traverse les protocoles HTTP sans perte et garantit une manipulation immutable.

Comment faire les imports ?

La bibliothèque expose les namespaces DDate et D depuis l'entrée principale ou en import direct (tree-shaking friendly), ce qui permet de ne charger que ce dont vous avez besoin.

typescript
import { DDate, D } from "@duplojs/utils";
import * as DDate from "@duplojs/utils/date";
import * as D from "@duplojs/utils/date";

Création

create

Construit un TheDate depuis un Date, un timestamp ou un autre TheDate et renvoie un Either (MayBe).

createOrThrow

Version stricte de create qui lance CreateTheDateError en cas d'entrée invalide.

createTime

Construit un TheTime à partir de millisecondes ou d'un objet de temps structuré.

createTimeOrThrow

Version stricte de createTime qui lance une exception en cas d'entrée invalide.

now

Retourne le timestamp exact du moment courant sous forme de TheDate.

today

Génère le début de journée (minuit) en TheDate.

yesterday

Retourne le début de la journée précédente.

tomorrow

Retourne le début de la journée suivante.

Conversion & validation

toNative

Convertit un TheDate en Date JavaScript.

toTimestamp

Expose le timestamp en millisecondes et valide la cohérence de la valeur.

toTimeValue

Convertit un TheTime en millisecondes en appliquant les bornes de sécurité.

isSafeTimeValue

Vérifie qu'une valeur de temps est un entier sûr dans les bornes.

getTimezoneOffset

Retourne le décalage en millisecondes pour un TheDate.

applyTimezone

Applique un décalage de fuseau horaire à un TheDate.

toISOString

Retourne la représentation ISO 8601 d'un TheDate.

format

Affiche un TheDate avec un format personnalisé et un fuseau horaire.

isSafeTimestamp

Vérifie qu'un timestamp est compris entre minTimestamp et maxTimestamp.

is

Vérifie qu'une chaîne correspond au format TheDate (type guard).

isTime

Vérifie qu'une chaîne correspond au format TheTime (type guard).

Lecture des composants

getYear

Revoie l'année d'un TheDate.

getMonth

Renvoie le mois (1-12) d'un TheDate.

getDayOfMonth

Renvoie le jour du mois (1-31) d'un TheDate.

getDayOfWeek

Renvoie le jour de la semaine (1-7) d'un TheDate, où 1 = lundi et 7 = dimanche.

getWeekOfYear

Renvoie la semaine de l'année (1-53) d'un TheDate selon la norme ISO 8601.

getDayOfYear

Renvoie le jour de l'année (1-366) d'un TheDate.

getHour

Renvoie l'heure (0-23) d'un TheDate.

getMinute

Renvoie les minutes (0-59) d'un TheDate.

getSecond

Renvoie les secondes (0-59) d'un TheDate.

getMilliseconds

Renvoie les millisecondes (0-999) d'un TheDate.

getFirstDayOfWeek

Renvoie le premier jour de la semaine (lundi) pour un TheDate.

getLastDayOfWeek

Renvoie le dernier jour de la semaine (dimanche) pour un TheDate.

getFirstDayOfMonth

Renvoie le premier jour du mois pour un TheDate.

getLastDayOfMonth

Renvoie le dernier jour du mois pour un TheDate.

Opérations temporelles

Ajouts

addYears

Ajoute un nombre d'années positif à un TheDate.

addMonths

Ajoute des mois en tenant compte des années bissextiles.

addWeeks

Décale une date par multiples de 7 jours.

addDays

Ajoute un nombre de jours positif.

addHours

Ajoute des heures sans convertir en millisecondes manuellement.

addMinutes

Ajoute des minutes.

addSeconds

Ajoute des secondes.

addMilliseconds

Ajoute des millisecondes en restant type-safe.

addTime

Ajoute une durée TheTime à un TheDate ou un TheTime.

Soustractions

subtractYears

Soustrait un nombre d'années.

subtractMonths

Soustrait des mois en conservant la cohérence des jours.

subtractWeeks

Soustrait des semaines.

subtractDays

Soustrait des jours.

subtractHours

Soustrait des heures.

subtractMinutes

Soustrait des minutes.

subtractSeconds

Soustrait des secondes.

subtractMilliseconds

Soustrait des millisecondes.

subtractTime

Soustrait une durée TheTime à un TheDate ou un TheTime.

Comparaison

greater

Vérifie si une date est strictement supérieure à une autre.

greaterThan

Compare en incluant l'égalité.

less

Vérifie si une date est strictement inférieure.

lessThan

Compare en incluant l'égalité pour l'infériorité.

between

Contrôle l'appartenance à un intervalle ouvert.

betweenThan

Variante incluant les bornes.

Comparaison (TheTime)

greaterTime

Vérifie si une durée est strictement supérieure à une autre.

greaterThanTime

Compare en incluant l'égalité pour TheTime.

lessTime

Vérifie si une durée est strictement inférieure.

lessThanTime

Compare en incluant l'égalité pour l'infériorité.

betweenTime

Contrôle l'appartenance d'un TheTime à un intervalle ouvert.

betweenThanTime

Variante inclusive pour TheTime.

sort

Trie un tableau de dates en ordre croissant ou décroissant.

sortTimes

Trie un tableau de durées en ordre croissant ou décroissant.

max

Retourne la date la plus récente d'un tuple.

maxTime

Retourne la durée la plus grande d'un tuple.

minTime

Retourne la durée la plus petite d'un tuple.

min

Retourne la date la plus ancienne d'un tuple.

Autres utilitaires

round

Arrondit une date à l'unité choisie (day, month, etc.).

each

Génère toutes les dates d'un intervalle selon une granularité (Unit).

closestTo

Trouve la date la plus proche d'une cible dans un itérable.

Constantes & types

constants

Expose minTimestamp, maxTimestamp et les durées usuelles (jour, semaine, etc.).

types/timezone

Énumération complète des fuseaux horaires IANA.

types/unit

Liste les unités disponibles pour round, each, etc.

types/time

Décrit les composantes temporelles (Hour, Minute, Second, ...).

types/isLeapYear

Fournit le type utilitaire pour déterminer si une année est bissextile.

Diffusé sous licence MIT.