Date et heure complète à la création d'un fichier
This commit is contained in:
34
tools/lib/datetime.js
Normal file
34
tools/lib/datetime.js
Normal file
@@ -0,0 +1,34 @@
|
||||
/**
|
||||
* Ajoute un zéro devant les valeurs inférieures à 10 pour conserver le formatage.
|
||||
* @param {number|string} value Valeur numérique à normaliser.
|
||||
* @returns {string} Représentation sur deux caractères.
|
||||
*/
|
||||
function pad(value) {
|
||||
return String(value).padStart(2, '0');
|
||||
}
|
||||
|
||||
/**
|
||||
* Retourne le timestamp ISO local formatté avec offset.
|
||||
* @param {Date} value Date à formater (par défaut : maintenant).
|
||||
* @returns {string} Timestamp ISO 8601 avec fuseau horaire local.
|
||||
*/
|
||||
function formatDateTime(value = new Date()) {
|
||||
const year = value.getFullYear();
|
||||
const month = pad(value.getMonth() + 1);
|
||||
const day = pad(value.getDate());
|
||||
const hours = pad(value.getHours());
|
||||
const minutes = pad(value.getMinutes());
|
||||
const seconds = pad(value.getSeconds());
|
||||
|
||||
const offsetMinutes = value.getTimezoneOffset();
|
||||
const sign = offsetMinutes <= 0 ? '+' : '-';
|
||||
const absOffset = Math.abs(offsetMinutes);
|
||||
const offsetHours = pad(Math.floor(absOffset / 60));
|
||||
const offsetMins = pad(absOffset % 60);
|
||||
|
||||
return `${year}-${month}-${day}T${hours}:${minutes}:${seconds}${sign}${offsetHours}:${offsetMins}`;
|
||||
}
|
||||
|
||||
module.exports = {
|
||||
formatDateTime,
|
||||
};
|
||||
Reference in New Issue
Block a user