Manipulation des dates et heures en JavaScript


function formaterDate(instant) {
    const annee = instant.getFullYear();
    const mois = instant.getMonth() + 1;
    const jour = instant.getDate();
    let heures = instant.getHours();
    let minutes = instant.getMinutes();
    let secondes = instant.getSeconds();

    minutes = minutes.toString().padStart(2, '0');
    secondes = secondes.toString().padStart(2, '0');
    
    return `${annee}-${mois}-${jour} ${heures}:${minutes}:${secondes}`;
}

const horodatage = formaterDate(new Date());

Formattage simplifié


function formaterISO(instant, decalage = 0) {
    const dateDecalee = new Date(instant.getTime() + decalage * 3600000);
    return dateDecalee.toISOString()
        .replace('T', ' ')
        .substring(0, 19)
        .replace(/-/g, '.');
}

const dateFormatee = formaterISO(new Date(), 1);

Dernier jour du mois


function obtenirDernierJourMois(instant) {
    const dateTemp = new Date(instant);
    dateTemp.setMonth(dateTemp.getMonth() + 1);
    dateTemp.setDate(0);
    return dateTemp.getDate();
}

const dernierJour = obtenirDernierJourMois(new Date());

Premeir jour du trimestre


function premierJourTrimestre(instant) {
    const mois = instant.getMonth();
    const dateResultat = new Date(instant);
    
    if(mois < 3) dateResultat.setMonth(0);
    else if(mois < 6) dateResultat.setMonth(3);
    else if(mois < 9) dateResultat.setMonth(6);
    else dateResultat.setMonth(9);
    
    dateResultat.setDate(1);
    return dateResultat;
}

Jour de la semaine en français


const joursSemaine = ["dimanche", "lundi", "mardi", "mercredi", "jeudi", "vendredi", "samedi"];
const jourActuel = joursSemaine[new Date().getDay()];

Jour de l'année


function jourDansAnnee(instant) {
    const debutAnnee = new Date(instant.getFullYear(), 0, 1);
    const difference = instant - debutAnnee;
    return Math.ceil(difference / (86400000));
}

Semaine de l'année


const semaineActuelle = Math.ceil(jourDansAnnee(new Date()) / 7);

Jours restants dans l'année


function joursRestants(instant) {
    const finAnnee = new Date(instant.getFullYear() + 1, 0, 1);
    const difference = finAnnee - instant;
    return Math.floor(difference / (86400000));
}

Différence entre deux dates


function calculerIntervalle(debut, fin, unite) {
    const ecart = fin - debut;
    const jours = Math.floor(ecart / 86400000);
    const heures = Math.floor((ecart % 86400000) / 3600000);
    const minutes = Math.floor((ecart % 3600000) / 60000);
    const secondes = Math.round((ecart % 60000) / 1000);

    switch(unite) {
        case 'jours': return `${jours} jours`;
        case 'heures': return `${jours*24 + heures} heures`;
        case 'minutes': return `${(jours*24 + heures)*60 + minutes} minutes`;
        default: return `${jours}j ${heures}h ${minutes}min ${secondes}s`;
    }
}

Calcul de dates relatives


function ajouterJours(instant, jours) {
    const resultat = new Date(instant);
    resultat.setDate(resultat.getDate() + jours);
    return resultat;
}

const dateFuture = ajouterJours(new Date(), 30);

Intervalle hebdomadaire


function obtenirSemaineComplete(instant) {
    const jourSemaine = instant.getDay();
    const debutSemaine = ajouterJours(instant, -jourSemaine);
    const finSemaine = ajouterJours(instant, 6 - jourSemaine);
    
    return { 
        debut: debutSemaine, 
        fin: finSemaine 
    };
}

Étiquettes: JavaScript Date Heure formatage ManipulationTemps

Publié le 25 juin à 00h06