Bonjour,
J'ai trouvé cet objet à cette adresse: http://techblog.procurios.nl/k/news/...avascript.html (Post du 02-08-2011). Mais ce code ne fonctionne pas pendant l'heure d'été (voir commentaire) puisque le timestamp est décalé d'une heure.J'ai donc modifié la ligne
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 //The following function is tested to work correctly (ISO 8601) with all Dec 31st and Jan 1st between 1970 and 2030: Date.prototype.getWeek = function () { // Based on: http://techblog.procurio...year-in-javascript.html // La ligne suivante ne fonctionne pas pendant l'heure d'été //var targetThursday = new Date(this.getFullYear(),this.getMonth(),this.getDate()); // Remove time components of date var targetThursday = new Date(this.getFullYear(),this.getMonth(),this.getDate(), this.getHours()); targetThursday.setDate(targetThursday.getDate() - ((targetThursday.getDay() + 6) % 7) + 3); // Change date to Thursday same week var firstThursday = new Date(targetThursday.getFullYear(), 0, 4); // Take January 4th as it is always in week 1 (see ISO 8601) firstThursday.setDate(firstThursday.getDate() - ((firstThursday.getDay() + 6) % 7) + 3); // Change date to Thursday same week var weekDiff = (targetThursday - firstThursday) / (86400000*7); // Number of weeks between target Thursday and first Thursday return 1 + weekDiff; }mais je ne suis pas sûr de mon coup. D'une part l'heure change et impose des problèmes d'arrondis, d'autre part je risque d'avoir des problèmes à l'heure d'hiver. J'ai aussi pensé remplacer le getHours par une constante 3600 * 1000 mais ça ne changera rien au problème. Avez-vous des idées?
Code : Sélectionner tout - Visualiser dans une fenêtre à part var targetThursday = new Date(this.getFullYear(),this.getMonth(),this.getDate(), this.getHours());
La discussion sur l'heure d'été qui suit le post du 02-08-2011 semble controversée.
Partager