Bonjour,
J'ai quelques problèmes pour comprendre ce qu'est un ServerTimeStamp et comment obtenir sa valeur. Pourrait - on m'éclairer ?
Je m'explique :
Je doit déclencher toute une suite de fonction javascript depuis le body onload de ma page html.
<body onload= "RunEorzeaClock(1327616148);">
"1327616148" est ici un nombre fixe, c'est a dire à chaque fois que je lance ma page HTML, le résultat est forcément le même.
Ce chiffre est sensé représenter un "ServerTimeStamp". Donc serait-il possible de l'obtenir afin que tout cela soit plus dynamique au lieu de mettre un nombre en dur...?
J'ai cru pendant un moment que le serverTimeStamp était en fait la date/heure du moment sous forme de milisecondes. J'ai donc adapté tout un code en javascript que j'ai trouvé pour convertir la date/heure en milisecondes
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64
|
var temptime = new Date();
serverTimeStamp = Ticks(temptime);
function Ticks(date)
{
this.day = date.getDate();
this.month = date.getMonth() + 1;
this.year = date.getFullYear();
this.hour = date.getHours();
this.minute = date.getMinutes();
this.second = date.getSeconds();
this.ms = date.getMilliseconds();
this.monthToDays = function(year, month)
{
var add = 0;
var result = 0;
if((year % 4 == 0) && ((year % 100 != 0) || ((year % 100 == 0) && (year % 400 == 0)))) add++;
switch(month)
{
case 0: return 0;
case 1: result = 31; break;
case 2: result = 59; break;
case 3: result = 90; break;
case 4: result = 120; break;
case 5: result = 151; break;
case 6: result = 181; break;
case 7: result = 212; break;
case 8: result = 243; break;
case 9: result = 273; break;
case 10: result = 304; break;
case 11: result = 334; break;
case 12: result = 365; break;
}
if(month > 1) result += add;
return result;
}
this.dateToTicks = function(year, month, day)
{
var a = parseInt((year - 1) * 365);
var b = parseInt((year - 1) / 4);
var c = parseInt((year - 1) / 100);
var d = parseInt((a + b) - c);
var e = parseInt((year - 1) / 400);
var f = parseInt(d + e);
var monthDays = this.monthToDays(year, month - 1);
var g = parseInt((f + monthDays) + day);
var h = parseInt(g - 1);
return h * 864000000000;
}
this.timeToTicks = function(hour, minute, second)
{
return (((hour * 3600) + minute * 60) + second) * 10000000;
}
return this.dateToTicks(this.year, this.month, this.day) + this.timeToTicks(this.hour, this.minute, this.second) + (this.ms * 10000);
} |
Mais cela ne renvoi pas du tout la bonne valeur...
Merci d'avance a ceux qui prendrons la peine de m'aider.
Partager