Je voudrais afficher la date courante moins N jours. ( jj mm aaaa)
Je ne voudrais pas faire une usine à gaz et réinventer (mal) ce qui a déjà
été fait. Donc prise en compte des mois de 28,29,30 , 31 jours, changement
d'année ...
N devrait être un paramètre, car il pourra changer.
In fr.comp.lang.javascript message <49019c9e$0$15465$ fr>, Fri, 24 Oct 2008 11:59:59, Mayeul posted:
Peut-on trouver de bonnes ressources sur la gestion des timezones et changement d'heures des dates en javascript ? Mon Google-fu n'est aps très bon.
J'aurais peut-être écrit "pas" là-bas? -----------------------------^
Il y a <URL:http://www.merlyn.demon.co.uk/misctime.htm> etc. <URL:http://www.merlyn.demon.co.uk/js-index.htm>, <URL:http://www.merlyn.demon.co.uk/js-dates.htm> ff. etc. mais vous devrez décider vous-même si le site et ses liens sont bonnes.
Et <http://www.jibbering.com/faq/index.html>.
Aussi, il y a <http://translate.google.com/translate?client=tmpg&hl=en&u =http%3A%2F%2Fwww.merlyn.demon.co.uk%2Findex.htm&langpair=en|fr> !
-- (c) John Stockton, nr London, UK. ?@merlyn.demon.co.uk Turnpike v6.05. Web <URL:http://www.merlyn.demon.co.uk/> - w. FAQish topics, links, acronyms PAS EXE etc : <URL:http://www.merlyn.demon.co.uk/programs/> - see 00index.htm Dates - miscdate.htm moredate.htm js-dates.htm pas-time.htm critdate.htm etc.
In fr.comp.lang.javascript message <49019c9e$0$15465$426a74cc@news.free.
fr>, Fri, 24 Oct 2008 11:59:59, Mayeul <mayeul.marguet@free.fr> posted:
Peut-on trouver de bonnes ressources sur la gestion des timezones et
changement d'heures des dates en javascript ? Mon Google-fu n'est aps
très bon.
J'aurais peut-être écrit "pas" là-bas? -----------------------------^
Il y a
<URL:http://www.merlyn.demon.co.uk/misctime.htm> etc.
<URL:http://www.merlyn.demon.co.uk/js-index.htm>,
<URL:http://www.merlyn.demon.co.uk/js-dates.htm> ff. etc.
mais vous devrez décider vous-même si le site et ses liens sont bonnes.
Et <http://www.jibbering.com/faq/index.html>.
Aussi, il y a <http://translate.google.com/translate?client=tmpg&hl=en&u
=http%3A%2F%2Fwww.merlyn.demon.co.uk%2Findex.htm&langpair=en|fr> !
--
(c) John Stockton, nr London, UK. ?@merlyn.demon.co.uk Turnpike v6.05.
Web <URL:http://www.merlyn.demon.co.uk/> - w. FAQish topics, links, acronyms
PAS EXE etc : <URL:http://www.merlyn.demon.co.uk/programs/> - see 00index.htm
Dates - miscdate.htm moredate.htm js-dates.htm pas-time.htm critdate.htm etc.
In fr.comp.lang.javascript message <49019c9e$0$15465$ fr>, Fri, 24 Oct 2008 11:59:59, Mayeul posted:
Peut-on trouver de bonnes ressources sur la gestion des timezones et changement d'heures des dates en javascript ? Mon Google-fu n'est aps très bon.
J'aurais peut-être écrit "pas" là-bas? -----------------------------^
Il y a <URL:http://www.merlyn.demon.co.uk/misctime.htm> etc. <URL:http://www.merlyn.demon.co.uk/js-index.htm>, <URL:http://www.merlyn.demon.co.uk/js-dates.htm> ff. etc. mais vous devrez décider vous-même si le site et ses liens sont bonnes.
Et <http://www.jibbering.com/faq/index.html>.
Aussi, il y a <http://translate.google.com/translate?client=tmpg&hl=en&u =http%3A%2F%2Fwww.merlyn.demon.co.uk%2Findex.htm&langpair=en|fr> !
-- (c) John Stockton, nr London, UK. ?@merlyn.demon.co.uk Turnpike v6.05. Web <URL:http://www.merlyn.demon.co.uk/> - w. FAQish topics, links, acronyms PAS EXE etc : <URL:http://www.merlyn.demon.co.uk/programs/> - see 00index.htm Dates - miscdate.htm moredate.htm js-dates.htm pas-time.htm critdate.htm etc.
SAM
Le 10/24/08 11:59 AM, Mayeul a écrit :
Peut-on trouver de bonnes ressources sur la gestion des timezones et changement d'heures des dates en javascript ?
Tu fouilles la-dedans : <http://www.merlyn.demon.co.uk/js-dates.htm> <http://www.merlyn.demon.co.uk/js-date0.htm> c'est en pas français et tu en auras pour des jours et des jours mais au moins ça semble faire le tour de la question.
-- sm
Le 10/24/08 11:59 AM, Mayeul a écrit :
Peut-on trouver de bonnes ressources sur la gestion des timezones et
changement d'heures des dates en javascript ?
Tu fouilles la-dedans :
<http://www.merlyn.demon.co.uk/js-dates.htm>
<http://www.merlyn.demon.co.uk/js-date0.htm>
c'est en pas français et tu en auras pour des jours et des jours
mais au moins ça semble faire le tour de la question.
Peut-on trouver de bonnes ressources sur la gestion des timezones et changement d'heures des dates en javascript ?
Tu fouilles la-dedans : <http://www.merlyn.demon.co.uk/js-dates.htm> <http://www.merlyn.demon.co.uk/js-date0.htm> c'est en pas français et tu en auras pour des jours et des jours mais au moins ça semble faire le tour de la question.
-- sm
Olivier Miakinen
Le 24/10/2008 19:33, SAM a écrit :
Il me semble que la façon la plus simple de procéder devrait être : var now = new Date(); var d = new Date(now.getFullYear(), now.getMonth(), now.getDate() - N);
Je ne pense pas que cela fonctionne.
Si, si, d'ailleurs c'est exactement le genre de code qui est exécuté quand tu fais « d.setDate( d.getDate() + nb ) » (dixit la norme de référence ECMA-262).
(que donne-ce si N est plus grand que le jour actuel ?) (alors qu'on a fixé le mois)
Tout est prévu. De la même façon que, si tu donnes un numéro de mois inférieur à 0 ou supérieur à 11, l'année est augmentée ou diminuée en conséquence.
Gross modo, l'algo est le suivant pour MakeDay(année, mois, jour) : 1) année = année + partie_entière(mois/12) 2) mois = mois modulo 12 3) cherche une valeur t (nombre de jours depuis le 1/1/1970) telle que YearFromTime(t) == année et MonthFromTime(t) == mois et DateFromTime(t) == 1 4) Calcule Day(t) + jour - 1
Comme tu vois, au moment où 'jour' est utilisé, on se contente de l'additionner à un nombre de jours déjà calculé. Peu importe alors dans quel mois on est et que 'jour' soit positif ou négatif.
Mais ceci devrait marcher aussi : var d = new Date(); d.setHours(12); d.setDate(d.getDate() - N);
Bof ... combien de chance a t-on de tomber sur 11:59:59 ?
Ce n'est pas à 11:59:59 que ça peut poser des problèmes.
et même ... ça prend l'heure du jour à l'instant 't' et renvoie l'heure au même instant diminué du nombre de jours et finalement on se contente de JJ/MM/AAA
Excepté à 23h59mn59s ça ne posera pas de blème me semble-ce.
Si le programme est toujours lancé entre 01:00:00 et 22:59:59.999, il n'y aura en effet aucun problème.
Je ne comprends pas ... Je croyais qu'il suffisait de fixer la date à - n jours ?
Tiens ? Curieusement, cela marche avec getDate() et setDate(), et c'est avec getUTCDate() et setUTCDate() que ça ne marche pas !
-------------------------------------------------
d = new Date(2008, 9, 26, 0, 19, 58)
Sun Oct 26 2008 00:19:58 GMT+0200
d.setDate(d.getDate()+1); d;
Mon Oct 27 2008 00:19:58 GMT+0100
d = new Date(2008, 9, 26, 0, 19, 58);
Sun Oct 26 2008 00:19:58 GMT+0200
d.setUTCDate(d.getUTCDate()+1); d;
Sun Oct 26 2008 23:19:58 GMT+0100 -------------------------------------------------
Toujours laisser le JS se dépatouiller avec les dates !
Voui, mais bon, je me méfie toujours.
Le 24/10/2008 19:33, SAM a écrit :
Il me semble que la façon la plus simple de procéder devrait être :
var now = new Date();
var d = new Date(now.getFullYear(), now.getMonth(), now.getDate() - N);
Je ne pense pas que cela fonctionne.
Si, si, d'ailleurs c'est exactement le genre de code qui est exécuté
quand tu fais « d.setDate( d.getDate() + nb ) » (dixit la norme de
référence ECMA-262).
(que donne-ce si N est plus grand que le jour actuel ?)
(alors qu'on a fixé le mois)
Tout est prévu. De la même façon que, si tu donnes un numéro de mois
inférieur à 0 ou supérieur à 11, l'année est augmentée ou diminuée en
conséquence.
Gross modo, l'algo est le suivant pour MakeDay(année, mois, jour) :
1) année = année + partie_entière(mois/12)
2) mois = mois modulo 12
3) cherche une valeur t (nombre de jours depuis le 1/1/1970) telle
que YearFromTime(t) == année et MonthFromTime(t) == mois et
DateFromTime(t) == 1
4) Calcule Day(t) + jour - 1
Comme tu vois, au moment où 'jour' est utilisé, on se contente de
l'additionner à un nombre de jours déjà calculé. Peu importe alors dans
quel mois on est et que 'jour' soit positif ou négatif.
Mais ceci devrait marcher aussi :
var d = new Date();
d.setHours(12);
d.setDate(d.getDate() - N);
Bof ... combien de chance a t-on de tomber sur 11:59:59 ?
Ce n'est pas à 11:59:59 que ça peut poser des problèmes.
et même ... ça prend l'heure du jour à l'instant 't'
et renvoie l'heure au même instant diminué du nombre de jours
et finalement on se contente de JJ/MM/AAA
Excepté à 23h59mn59s ça ne posera pas de blème me semble-ce.
Si le programme est toujours lancé entre 01:00:00 et 22:59:59.999, il
n'y aura en effet aucun problème.
Je ne comprends pas ...
Je croyais qu'il suffisait de fixer la date à - n jours ?
Tiens ? Curieusement, cela marche avec getDate() et setDate(), et c'est
avec getUTCDate() et setUTCDate() que ça ne marche pas !
-------------------------------------------------
d = new Date(2008, 9, 26, 0, 19, 58)
Sun Oct 26 2008 00:19:58 GMT+0200
d.setDate(d.getDate()+1); d;
Mon Oct 27 2008 00:19:58 GMT+0100
d = new Date(2008, 9, 26, 0, 19, 58);
Sun Oct 26 2008 00:19:58 GMT+0200
d.setUTCDate(d.getUTCDate()+1); d;
Sun Oct 26 2008 23:19:58 GMT+0100
-------------------------------------------------
Toujours laisser le JS se dépatouiller avec les dates !
Il me semble que la façon la plus simple de procéder devrait être : var now = new Date(); var d = new Date(now.getFullYear(), now.getMonth(), now.getDate() - N);
Je ne pense pas que cela fonctionne.
Si, si, d'ailleurs c'est exactement le genre de code qui est exécuté quand tu fais « d.setDate( d.getDate() + nb ) » (dixit la norme de référence ECMA-262).
(que donne-ce si N est plus grand que le jour actuel ?) (alors qu'on a fixé le mois)
Tout est prévu. De la même façon que, si tu donnes un numéro de mois inférieur à 0 ou supérieur à 11, l'année est augmentée ou diminuée en conséquence.
Gross modo, l'algo est le suivant pour MakeDay(année, mois, jour) : 1) année = année + partie_entière(mois/12) 2) mois = mois modulo 12 3) cherche une valeur t (nombre de jours depuis le 1/1/1970) telle que YearFromTime(t) == année et MonthFromTime(t) == mois et DateFromTime(t) == 1 4) Calcule Day(t) + jour - 1
Comme tu vois, au moment où 'jour' est utilisé, on se contente de l'additionner à un nombre de jours déjà calculé. Peu importe alors dans quel mois on est et que 'jour' soit positif ou négatif.
Mais ceci devrait marcher aussi : var d = new Date(); d.setHours(12); d.setDate(d.getDate() - N);
Bof ... combien de chance a t-on de tomber sur 11:59:59 ?
Ce n'est pas à 11:59:59 que ça peut poser des problèmes.
et même ... ça prend l'heure du jour à l'instant 't' et renvoie l'heure au même instant diminué du nombre de jours et finalement on se contente de JJ/MM/AAA
Excepté à 23h59mn59s ça ne posera pas de blème me semble-ce.
Si le programme est toujours lancé entre 01:00:00 et 22:59:59.999, il n'y aura en effet aucun problème.
Je ne comprends pas ... Je croyais qu'il suffisait de fixer la date à - n jours ?
Tiens ? Curieusement, cela marche avec getDate() et setDate(), et c'est avec getUTCDate() et setUTCDate() que ça ne marche pas !
-------------------------------------------------
d = new Date(2008, 9, 26, 0, 19, 58)
Sun Oct 26 2008 00:19:58 GMT+0200
d.setDate(d.getDate()+1); d;
Mon Oct 27 2008 00:19:58 GMT+0100
d = new Date(2008, 9, 26, 0, 19, 58);
Sun Oct 26 2008 00:19:58 GMT+0200
d.setUTCDate(d.getUTCDate()+1); d;
Sun Oct 26 2008 23:19:58 GMT+0100 -------------------------------------------------
Toujours laisser le JS se dépatouiller avec les dates !
Voui, mais bon, je me méfie toujours.
SAM
Le 10/24/08 10:27 PM, Dr J R Stockton a écrit :
Aussi, il y a <http://translate.google.com/translate?client=tmpg&hl=en&u =http%3A%2F%2Fwww.merlyn.demon.co.uk%2Findex.htm&langpair=en|fr> !
Cher John,
Merci de ne plus donner ce lien, la traduction Googlesque est inexploitable.
Dear John,
Thanks to do no more give this link. 1) english abbreviations are not translated (JC and so on) 2) translated sentances get no sens (no meaning)
Le 10/24/08 10:27 PM, Dr J R Stockton a écrit :
Aussi, il y a <http://translate.google.com/translate?client=tmpg&hl=en&u
=http%3A%2F%2Fwww.merlyn.demon.co.uk%2Findex.htm&langpair=en|fr> !
Cher John,
Merci de ne plus donner ce lien, la traduction Googlesque est inexploitable.
Dear John,
Thanks to do no more give this link.
1) english abbreviations are not translated (JC and so on)
2) translated sentances get no sens (no meaning)
Aussi, il y a <http://translate.google.com/translate?client=tmpg&hl=en&u =http%3A%2F%2Fwww.merlyn.demon.co.uk%2Findex.htm&langpair=en|fr> !
Cher John,
Merci de ne plus donner ce lien, la traduction Googlesque est inexploitable.
Dear John,
Thanks to do no more give this link. 1) english abbreviations are not translated (JC and so on) 2) translated sentances get no sens (no meaning)
SAM
Le 10/24/08 11:33 PM, Olivier Miakinen a écrit :
Tiens ? Curieusement, cela marche avec getDate() et setDate(), et c'est avec getUTCDate() et setUTCDate() que ça ne marche pas !
à mon idée ça marche impeccablement.
à 0 heures tu ajoutes un jour en UTC ça te donne le même jour à 22 heures (si décalage de 120mn) ou même jour à 23 heures (si décalage de 60mn)
-------------------------------------------------
d = new Date(2008, 9, 26, 0, 19, 58)
Sun Oct 26 2008 00:19:58 GMT+0200
d.setDate(d.getDate()+1); d;
Mon Oct 27 2008 00:19:58 GMT+0100
et pourquoi + 100 ? (alors qu'on avait +200)
d = new Date(2008, 9, 26, 0, 19, 58);
Sun Oct 26 2008 00:19:58 GMT+0200
d.setUTCDate(d.getUTCDate()+1); d;
Sun Oct 26 2008 23:19:58 GMT+0100 -------------------------------------------------
Pourquoi ça cafouille de 200 à 100 ? mystère.
Toujours laisser le JS se dépatouiller avec les dates !
Voui, mais bon, je me méfie toujours.
Voici ce que j'obtiens avec mon Firefox 3 ou mon Safari 3 :
1) jours en moins :
var d = new Date(); alert('date du jour GMT = '+d); /// date du jour GMT = Sat Oct 25 2008 13:12:28 GMT+0200 (CEST) d = d.setDate( d.getDate() -26) alert('date à -26 jours GMT = ' + new Date(d)); /// date à -26 jours GMT = Mon Sep 29 2008 13:12:28 GMT+0200 (CEST) alert('date à -26 jours UTC = ' + new Date(d).toUTCString()); /// date à -26 jours UTC = Mon, 29 Sep 2008 11:12:28 GMT
2) 1 jour en plus :
var d = new Date(); alert('date du jour GMT = '+d); /// date du jour GMT = Sat Oct 25 2008 14:11:22 GMT+0200 (CEST) d = d.setDate( d.getDate() +1) alert('date à +1 jour GMT = ' + new Date(d)); /// date à +1 jour GMT = Sun Oct 26 2008 14:11:22 GMT+0100 (CET) alert('date à +1 jour UTC = ' + new Date(d).toUTCString()); /// date à +1 jour UTC = Sun, 26 Oct 2008 13:11:22 GMT
c'est la même pagaille là ! (testé avec +4 jours, c'est pareil) Pourquoi ça change de fuseau horaire quand on ajoute ?
-- sm
Le 10/24/08 11:33 PM, Olivier Miakinen a écrit :
Tiens ? Curieusement, cela marche avec getDate() et setDate(), et c'est
avec getUTCDate() et setUTCDate() que ça ne marche pas !
à mon idée ça marche impeccablement.
à 0 heures tu ajoutes un jour en UTC
ça te donne le même jour à 22 heures (si décalage de 120mn)
ou même jour à 23 heures (si décalage de 60mn)
-------------------------------------------------
d = new Date(2008, 9, 26, 0, 19, 58)
Sun Oct 26 2008 00:19:58 GMT+0200
d.setDate(d.getDate()+1); d;
Mon Oct 27 2008 00:19:58 GMT+0100
et pourquoi + 100 ?
(alors qu'on avait +200)
d = new Date(2008, 9, 26, 0, 19, 58);
Sun Oct 26 2008 00:19:58 GMT+0200
d.setUTCDate(d.getUTCDate()+1); d;
Sun Oct 26 2008 23:19:58 GMT+0100
-------------------------------------------------
Pourquoi ça cafouille de 200 à 100 ? mystère.
Toujours laisser le JS se dépatouiller avec les dates !
Voui, mais bon, je me méfie toujours.
Voici ce que j'obtiens avec mon Firefox 3 ou mon Safari 3 :
1) jours en moins :
var d = new Date();
alert('date du jour GMT = '+d);
/// date du jour GMT = Sat Oct 25 2008 13:12:28 GMT+0200 (CEST)
d = d.setDate( d.getDate() -26)
alert('date à -26 jours GMT = ' + new Date(d));
/// date à -26 jours GMT = Mon Sep 29 2008 13:12:28 GMT+0200 (CEST)
alert('date à -26 jours UTC = ' + new Date(d).toUTCString());
/// date à -26 jours UTC = Mon, 29 Sep 2008 11:12:28 GMT
2) 1 jour en plus :
var d = new Date();
alert('date du jour GMT = '+d);
/// date du jour GMT = Sat Oct 25 2008 14:11:22 GMT+0200 (CEST)
d = d.setDate( d.getDate() +1)
alert('date à +1 jour GMT = ' + new Date(d));
/// date à +1 jour GMT = Sun Oct 26 2008 14:11:22 GMT+0100 (CET)
alert('date à +1 jour UTC = ' + new Date(d).toUTCString());
/// date à +1 jour UTC = Sun, 26 Oct 2008 13:11:22 GMT
c'est la même pagaille là !
(testé avec +4 jours, c'est pareil)
Pourquoi ça change de fuseau horaire quand on ajoute ?
Tiens ? Curieusement, cela marche avec getDate() et setDate(), et c'est avec getUTCDate() et setUTCDate() que ça ne marche pas !
à mon idée ça marche impeccablement.
à 0 heures tu ajoutes un jour en UTC ça te donne le même jour à 22 heures (si décalage de 120mn) ou même jour à 23 heures (si décalage de 60mn)
-------------------------------------------------
d = new Date(2008, 9, 26, 0, 19, 58)
Sun Oct 26 2008 00:19:58 GMT+0200
d.setDate(d.getDate()+1); d;
Mon Oct 27 2008 00:19:58 GMT+0100
et pourquoi + 100 ? (alors qu'on avait +200)
d = new Date(2008, 9, 26, 0, 19, 58);
Sun Oct 26 2008 00:19:58 GMT+0200
d.setUTCDate(d.getUTCDate()+1); d;
Sun Oct 26 2008 23:19:58 GMT+0100 -------------------------------------------------
Pourquoi ça cafouille de 200 à 100 ? mystère.
Toujours laisser le JS se dépatouiller avec les dates !
Voui, mais bon, je me méfie toujours.
Voici ce que j'obtiens avec mon Firefox 3 ou mon Safari 3 :
1) jours en moins :
var d = new Date(); alert('date du jour GMT = '+d); /// date du jour GMT = Sat Oct 25 2008 13:12:28 GMT+0200 (CEST) d = d.setDate( d.getDate() -26) alert('date à -26 jours GMT = ' + new Date(d)); /// date à -26 jours GMT = Mon Sep 29 2008 13:12:28 GMT+0200 (CEST) alert('date à -26 jours UTC = ' + new Date(d).toUTCString()); /// date à -26 jours UTC = Mon, 29 Sep 2008 11:12:28 GMT
2) 1 jour en plus :
var d = new Date(); alert('date du jour GMT = '+d); /// date du jour GMT = Sat Oct 25 2008 14:11:22 GMT+0200 (CEST) d = d.setDate( d.getDate() +1) alert('date à +1 jour GMT = ' + new Date(d)); /// date à +1 jour GMT = Sun Oct 26 2008 14:11:22 GMT+0100 (CET) alert('date à +1 jour UTC = ' + new Date(d).toUTCString()); /// date à +1 jour UTC = Sun, 26 Oct 2008 13:11:22 GMT
c'est la même pagaille là ! (testé avec +4 jours, c'est pareil) Pourquoi ça change de fuseau horaire quand on ajoute ?
-- sm
Olivier Miakinen
Le 25/10/2008 14:17, SAM a écrit :
Tiens ? Curieusement, cela marche avec getDate() et setDate(), et c'est avec getUTCDate() et setUTCDate() que ça ne marche pas !
à mon idée ça marche impeccablement.
Bon, finalement, après un jour de réflexion et une soirée passée aux urgences, je suis d'accord que c'est normal. Et donc, pour ne pas avoir de problème quand seul le jour nous importe, c'est bien getDate() et setDate() qu'il faut utiliser, même entre 23 h et 0 h 59 mn 59,999 s.
[...]
-------------------------------------------------
d = new Date(2008, 9, 26, 0, 19, 58)
Sun Oct 26 2008 00:19:58 GMT+0200
d.setDate(d.getDate()+1); d;
Mon Oct 27 2008 00:19:58 GMT+0100
et pourquoi + 100 ? (alors qu'on avait +200)
Parce que cette nuit, en France, on passe de l'heure d'été (+0200) à l'heure d'hiver (+0100). En calculant avec getDate() et setDate() on retrouve la même heure locale, mais notre jour a duré 25 heures.
d = new Date(2008, 9, 26, 0, 19, 58);
Sun Oct 26 2008 00:19:58 GMT+0200
d.setUTCDate(d.getUTCDate()+1); d;
Sun Oct 26 2008 23:19:58 GMT+0100
Ici, en calculant avec getUTCDate() et setUTCDate(), notre jour dure bien 24 heures, mais on se retrouve une heure plus tôt en heure locale.
Pourquoi ça cafouille de 200 à 100 ? mystère.
Non, non, pas de mystère. Cette nuit à 3:00 +0200 on va passer d'un seul coup à 2:00 +0100, et tu pourras donc dormir une heure de plus.
Toujours laisser le JS se dépatouiller avec les dates !
Voui, mais bon, je me méfie toujours.
Je ne me méfie plus maintenant que j'ai compris : il suffit d'utiliser getDate() et setDate() et tout ira bien.
Voici ce que j'obtiens avec mon Firefox 3 ou mon Safari 3 :
[...]
c'est la même pagaille là ! (testé avec +4 jours, c'est pareil) Pourquoi ça change de fuseau horaire quand on ajoute ?
:-D
C'est rigolo, les questions de calculs d'heure qui sont posées juste les jours de changement d'heure !
Le 25/10/2008 14:17, SAM a écrit :
Tiens ? Curieusement, cela marche avec getDate() et setDate(), et c'est
avec getUTCDate() et setUTCDate() que ça ne marche pas !
à mon idée ça marche impeccablement.
Bon, finalement, après un jour de réflexion et une soirée passée aux
urgences, je suis d'accord que c'est normal. Et donc, pour ne pas avoir
de problème quand seul le jour nous importe, c'est bien getDate() et
setDate() qu'il faut utiliser, même entre 23 h et 0 h 59 mn 59,999 s.
[...]
-------------------------------------------------
d = new Date(2008, 9, 26, 0, 19, 58)
Sun Oct 26 2008 00:19:58 GMT+0200
d.setDate(d.getDate()+1); d;
Mon Oct 27 2008 00:19:58 GMT+0100
et pourquoi + 100 ?
(alors qu'on avait +200)
Parce que cette nuit, en France, on passe de l'heure d'été (+0200) à
l'heure d'hiver (+0100). En calculant avec getDate() et setDate() on
retrouve la même heure locale, mais notre jour a duré 25 heures.
d = new Date(2008, 9, 26, 0, 19, 58);
Sun Oct 26 2008 00:19:58 GMT+0200
d.setUTCDate(d.getUTCDate()+1); d;
Sun Oct 26 2008 23:19:58 GMT+0100
Ici, en calculant avec getUTCDate() et setUTCDate(), notre jour dure
bien 24 heures, mais on se retrouve une heure plus tôt en heure locale.
Pourquoi ça cafouille de 200 à 100 ? mystère.
Non, non, pas de mystère. Cette nuit à 3:00 +0200 on va passer d'un seul
coup à 2:00 +0100, et tu pourras donc dormir une heure de plus.
Toujours laisser le JS se dépatouiller avec les dates !
Voui, mais bon, je me méfie toujours.
Je ne me méfie plus maintenant que j'ai compris : il suffit d'utiliser
getDate() et setDate() et tout ira bien.
Voici ce que j'obtiens avec mon Firefox 3 ou mon Safari 3 :
[...]
c'est la même pagaille là !
(testé avec +4 jours, c'est pareil)
Pourquoi ça change de fuseau horaire quand on ajoute ?
:-D
C'est rigolo, les questions de calculs d'heure qui sont posées juste les
jours de changement d'heure !
Tiens ? Curieusement, cela marche avec getDate() et setDate(), et c'est avec getUTCDate() et setUTCDate() que ça ne marche pas !
à mon idée ça marche impeccablement.
Bon, finalement, après un jour de réflexion et une soirée passée aux urgences, je suis d'accord que c'est normal. Et donc, pour ne pas avoir de problème quand seul le jour nous importe, c'est bien getDate() et setDate() qu'il faut utiliser, même entre 23 h et 0 h 59 mn 59,999 s.
[...]
-------------------------------------------------
d = new Date(2008, 9, 26, 0, 19, 58)
Sun Oct 26 2008 00:19:58 GMT+0200
d.setDate(d.getDate()+1); d;
Mon Oct 27 2008 00:19:58 GMT+0100
et pourquoi + 100 ? (alors qu'on avait +200)
Parce que cette nuit, en France, on passe de l'heure d'été (+0200) à l'heure d'hiver (+0100). En calculant avec getDate() et setDate() on retrouve la même heure locale, mais notre jour a duré 25 heures.
d = new Date(2008, 9, 26, 0, 19, 58);
Sun Oct 26 2008 00:19:58 GMT+0200
d.setUTCDate(d.getUTCDate()+1); d;
Sun Oct 26 2008 23:19:58 GMT+0100
Ici, en calculant avec getUTCDate() et setUTCDate(), notre jour dure bien 24 heures, mais on se retrouve une heure plus tôt en heure locale.
Pourquoi ça cafouille de 200 à 100 ? mystère.
Non, non, pas de mystère. Cette nuit à 3:00 +0200 on va passer d'un seul coup à 2:00 +0100, et tu pourras donc dormir une heure de plus.
Toujours laisser le JS se dépatouiller avec les dates !
Voui, mais bon, je me méfie toujours.
Je ne me méfie plus maintenant que j'ai compris : il suffit d'utiliser getDate() et setDate() et tout ira bien.
Voici ce que j'obtiens avec mon Firefox 3 ou mon Safari 3 :
[...]
c'est la même pagaille là ! (testé avec +4 jours, c'est pareil) Pourquoi ça change de fuseau horaire quand on ajoute ?
:-D
C'est rigolo, les questions de calculs d'heure qui sont posées juste les jours de changement d'heure !
SAM
Le 10/25/08 11:17 PM, Olivier Miakinen a écrit :
Le 25/10/2008 14:17, SAM a écrit :
Pourquoi ça change de fuseau horaire quand on ajoute ?
:-D
C'est rigolo, les questions de calculs d'heure qui sont posées juste les jours de changement d'heure !
Purée! C'est vrai qu'on change d'heure cette nuit ? Encore ? Ils ne se lasseront donc jamais ? Et toujours jamais personne qui me dit rien !
Néanmoins le changement d'heure est le 26 à 3 heures <http://www.industrie.gouv.fr/energie/developp/econo/textes/se_heur.htm>
Là je me suis bien fait avoir : - 25 + 1 = 26 (le jour fatidique) - 14 heures (donc après 3 heures) faut tout regarder !
et comme d'hab je ne sais dans quel sens tourner les aiguilles de la montre ! Elle va sans doute être remise à l'heure dans 5 ou 6 semaines.
-- sm
Le 10/25/08 11:17 PM, Olivier Miakinen a écrit :
Le 25/10/2008 14:17, SAM a écrit :
Pourquoi ça change de fuseau horaire quand on ajoute ?
:-D
C'est rigolo, les questions de calculs d'heure qui sont posées juste les
jours de changement d'heure !
Purée! C'est vrai qu'on change d'heure cette nuit ?
Encore ? Ils ne se lasseront donc jamais ?
Et toujours jamais personne qui me dit rien !
Néanmoins le changement d'heure est le 26 à 3 heures
<http://www.industrie.gouv.fr/energie/developp/econo/textes/se_heur.htm>
Là je me suis bien fait avoir :
- 25 + 1 = 26 (le jour fatidique)
- 14 heures (donc après 3 heures) faut tout regarder !
et comme d'hab je ne sais dans quel sens tourner les aiguilles de la
montre !
Elle va sans doute être remise à l'heure dans 5 ou 6 semaines.