En développant la réponse acceptée, à savoir pourquoi 635646076777520000
est ajouté.
Javascript new Date().getTime() or Date.now()
renverra le nombre de millisecondes passé de midnight of January 1, 1970
.
En .NET( fuente sous Remarks
sections)
Le type de valeur DateTime représente des dates et des heures dont les valeurs vont de 00:00:00 (minuit), le 1er janvier 0001 Anno Domini (ère commune) à 11:59:59 P.M., le 31 décembre 9999 A.D. (C.E.) dans le calendrier grégorien.
621355968000000000
est la valeur des ticks de midnight Jan 1 01 CE
a midnight Jan 1 1970
Ainsi, dans .NET
Console.Write(new DateTime(621355968000000000))
// output 1/1/1970 12:00:00 AM
D'où la conversion du temps javascript en ticks .Net
var currentTime = new Date().getTime();
// 10,000 ticks in 1 millisecond
// jsTicks is number of ticks from midnight Jan 1, 1970
var jsTicks = currentTime * 10000;
// add 621355968000000000 to jsTicks
// netTicks is number of ticks from midnight Jan 1, 01 CE
var netTicks = jsTicks + 621355968000000000;
Maintenant, dans .NET
Console.Write(new DateTime(netTicks))
// output current time
1 votes
Gardez à l'esprit que la date et l'heure du navigateur peuvent être réglées sur n'importe quel fuseau horaire, de sorte que vos données ne seront pas relatives à l'UTC sur le serveur. Je compense normalement en injectant la date et l'heure du serveur dans le fichier
utcnow
en ticks (par rapport à 1970) dans la page et stocker la différence entre cette valeur et+new Date()
en début de page. Ensuite, toutes les dates et heures peuvent être décalées de ce montant. Toute erreur est alors simplement due à la latence de la page.