Javascript: Obtenir la date actuelle en millisecondes (UTC) (AUCUNE utilisation de chaînes)
Bien, vous pourriez penser que cette question a déjà été posée, mais je pense qu'il n'a pas. Les solutions que j'ai lu sur tous eu ce "puzzle" de la technique (comme getUTCMonth() + getUTCMinutes + ...
).
Mais comme je ne veux comparer le délai en secondes entre deux UTC (!) dates, cela ne s'applique pas.
Comme tout le monde le sait, vous pouvez obtenir le courant (non-UTC) date:
var d = new Date();
var t_millis = d.getTime();
Mais ce n'est PAS ce que je veux. J'aimerais avoir la date système actuelle en UTC et en millisecondes, afin de ne pas déconner avec des cordes. Autant que je sache, la variable t_millis
contiendra la valeur en millisecondes de le timestamp actuel en GMT, pas de l'UTC.
(Puisque d est en GMT. Sauf getTime() effectue une sorte de temps implicites de la zone de conversion, j'. e. en ajoutant le décalage AVANT donner les millisecondes, mais je n'ai jamais lu à ce sujet, n'importe où)
Donc, il y a vraiment pas d'autre moyen que d'ajouter le décalage de la valeur de temps?
Je suis désespérément absent une fonction comme getUTCTimeMillis()
connue dans d'autres langues.
source d'informationauteur syntaxerror | 2012-06-01
Vous devez vous connecter pour publier un commentaire.
C'est une vieille question, mais pour l'amour de nouveau les visiteurs, c'est le CORRIGER réponse:
Elle renvoie le nombre de millisecondes écoulées depuis le 1er janvier 1970 00:00:00 UTC
La valeur en millisecondes de temps de la journée va être la même quel que soit votre fuseau horaire. Qui est, il n'y a pas de fuseaux horaires sur la planète Terre, qui diffèrent l'un de l'autre par un certain nombre de millisecondes supérieur à zéro. (Ils peuvent différer par un nombre entier d'heures, voire quelques minutes, mais non pas en secondes ou millisecondes.)
Cela dit, la valeur que vous obtenez de retour de
getTime()
est un UTC-par rapport timestamp. Si deux navigateurs web largement à différents endroits sur le globe créer un objet Date en même temps, ils reçoivent tous deux la même valeur à partir de.getTime()
(en supposant que les horloges sont synchronisées, ce qui est hautement improbable).Ici: 1338585185539 C'est un timestamp je viens de recevoir de mon navigateur. Je suis à Austin, au TEXAS, et maintenant il est 4:13 dans l'après-midi (de sorte que l'horodatage sera légèrement avant). Branchez-le à une instance de Date sur votre machine et voir ce qu'il dit.
(modifier — dans un souci de postérité, que le timestamp est de 1 juin 2012.)
J'ai utilisé cette fonction pour résoudre le problème.
1 janvier 1970 à 00:00:00 dans le fuseau horaire du client.
Janvier 1970 00:00:00 UTC.
comment sur:
Pour obtenir le timestamp à partir d'une date au format UTC, vous devez prendre en compte le fuseau horaire et l'heure d'été à cette date. Par exemple, une date en janvier ou en juillet pourrait signifier 1 heure de décalage.
L'option ci-dessous.
Il peut être utilisé comme: