Conversion du numéro de série de date Excel en date avec Javascript

J’ai le code javascript suivant qui convertit une date (chaîne) en numéro de série de date utilisé dans Microsoft Excel :

function JSDateToExcelDate(inDate) {

    var returnDateTime = 25569.0 + ((inDate.getTime() - (inDate.getTimezoneOffset() * 60 * 1000)) / (1000 * 60 * 60 * 24));
    return returnDateTime.toString().substr(0,5);

}

Alors, comment faire l’inverse ? (C’est-à-dire un code Javascript qui convertit le numéro de série de date utilisé dans Microsoft Excel en une chaîne de date ?)

Essayez ceci :

function ExcelDateToJSDate(serial) {
   var utc_days  = Math.floor(serial - 25569);
   var utc_value = utc_days * 86400;
   var date_info = new Date(utc_value * 1000);

   var fractional_day = serial - Math.floor(serial) + 0.0000001;

   var total_seconds = Math.floor(86400 * fractional_day);

   var seconds = total_seconds % 60;

   total_seconds -= seconds;

   var hours = Math.floor(total_seconds / (60 * 60));
   var minutes = Math.floor(total_seconds / 60) % 60;

   return new Date(date_info.getFullYear(), date_info.getMonth(), date_info.getDate(), hours, minutes, seconds);
}

Fait sur mesure pour vous :slight_smile: