Advanced time function
De Wiki Let's Role
function heure(tz) {
// Date de référence (que TU connais)
var base_annee = 2025;
var base_mois = 1; // Janvier
var base_jour = 1; // 1er janvier
var base_jSemaine = 3; // 0=Lundi → 3=Jeudi (2025-01-01)
var moisLong = [31,28,31,30,31,30,31,31,30,31,30,31];
var joursNom = ["Lundi","Mardi","Mercredi","Jeudi","Vendredi","Samedi","Dimanche"];
var moisNom = ["Janvier","Février","Mars","Avril","Mai","Juin","Juillet",
"Août","Septembre","Octobre","Novembre","Décembre"];
// Epoch actuel + fuseau horaire
var now = Math.floor(Date.now() / 1000) + tz * 3600;
// Convertir le même jour base en epoch SECONDES (simplifié)
var baseDate = new Date("2025-01-01");
var baseEpoch = Math.floor(baseDate.getTime() / 1000);
var delta = now - baseEpoch; // secondes depuis le 1 janvier 2025
// ---- Heures, minutes, secondes ----
var s = delta % 60;
delta = Math.floor(delta / 60);
var m = delta % 60;
delta = Math.floor(delta / 60);
var h = delta % 24;
delta = Math.floor(delta / 24);
// ---- Jours écoulés depuis la base ----
var joursPasse = delta;
// Jour de la semaine
var jSemaine = (base_jSemaine + joursPasse) % 7;
// ---- Calcul du jour / mois / année ----
var annee = base_annee;
var mois = base_mois - 1; // 0..11
var jour = base_jour;
// Année bissextile simple
function estBissextile(a) {
return (a % 4 == 0 && (a % 100 != 0 || a % 400 == 0));
}
while (joursPasse > 0) {
var len = moisLong[mois];
if (mois == 1 && estBissextile(annee)) {
len = 29;
}
jour++;
if (jour > len) {
jour = 1;
mois++;
if (mois == 12) {
mois = 0;
annee++;
}
}
joursPasse--;
}
// ---- Padding simple ----
if (h < 10) h = "0"+h;
if (m < 10) m = "0"+m;
if (s < 10) s = "0"+s;
return joursNom[jSemaine] + " " + jour + " " +
moisNom[mois] + " " + annee + " - " +
h + ":" + m + ":" + s;
}