Unix epoch time: Ajout de jours

En javascript, je devais append un seul jour à l’horodatage epix unix. Donc, j’ai essayé d’append 24 * 60 * 60 * 1000 ou 86400000 millisecondes à ma date, disons: 1396306800000, qui, selon http://www.epochconverter.com/ est: 4/1/2014 12:00:00 AM GMT+1 . Maintenant, quand j’essaie d’append un jour, pour obtenir le résultat, 1396393200000 qui est: 4/2/2014 12:00:00 AM GMT+1 .

Juste un jour, non?

Maintenant, j’essaie et soustrais un jour de l’original 1396306800000 pour obtenir 1396220400000 ou 3/31/2014 12:00:00 AM GMT+1

Jusqu’ici tout va bien.

Maintenant, si je fais une soustraction supplémentaire, j’obtiens ceci: 1396134000000 qui est le 3/29/2014 11:00:00 PM GMT+0

Comment est-ce possible? Les soustractions ultérieures se passent bien avec les mêmes décalages. Mais à ce point précis, le 30 mars est totalement ignoré. Quelqu’un peut-il me dire ce qui se passe?

Le temps de l’heure d’été. Probablement l’heure d’été britannique .

Vous avez probablement oublié le GMT+1

 3/31/2014 12:00:00 AM GMT+1 

Si vous regardez la date antérieure, c’est GMT+0 :

 3/29/2014 11:00:00 PM GMT+0 

Le Royaume-Uni (et d’autres pays) change de fuseau horaire le dernier dimanche de mars, soit le 30 mars de cette année (2014). Le site Web utilise vos parameters de fuseau horaire local. Cela explique la différence apparente d’une heure.

Il ne saute pas un jour, vous ne tenez pas compte de l’heure d’été.

Pendant le réglage de l’heure d’été, la journée n’est que de 23 heures, à laquelle vous soustrayez 24 heures.

Je regardais le lien que vous avez fourni et aussi calculé et il donne le résultat correct.

Donc, si vous soustrayez un jour de 1396306800000, il devient 1396220400000 = 1396306800000-86400000

et la sortie est

GMT: dim. 30 mars 2014 23:00:00 GMT