J'ai une application angular.js, et je veux obtenir les dates de lundi et dimanche de la semaine en cours, qui sont ensuite définies par défaut sur les dates du calendrier. Je regardais une erreur due aux dates produites ne tombant pas dans les 7 jours de durée. J'ai corrigé le problème. Mais comme je jouais avec le code, j'ai découvert que, code de création de date similaire produisait des valeurs différentes pour l'heure. Voici un extrait de mon code:Javascript new Fonction Date produisant différentes valeurs d'heures pour deux appels de fonction similaires
var current = new Date(); // get current date
var weekstart = current.getDate() - current.getDay() + 1;
var weekend = weekstart + 6; // end day is the first day + 6
var firstday = new Date(current.setDate(weekstart));
firstday = new Date(firstday.getFullYear() + '-' + (firstday.getMonth() + 1)
+ '-' + firstday.getDate());
console.log("Monday: " + firstday);
//firstday.setHours(0, 0, 0, 0);
var last = new Date(firstday);
last.setDate(last.getDate() + 6);
console.log("Sunday 1: " + last);
var lastday = new Date(last.getFullYear() + '-' + (last.getMonth() + 1)
+ '-' + last.getDate());
console.log("Sunday 2: " + lastday);
Voici les valeurs générées dans la console:
Monday: Mon Oct 09 2017 00:00:00 GMT+1100 (AUS Eastern Daylight Time)
Sunday 1: Sun Oct 15 2017 00:00:00 GMT+1100 (AUS Eastern Daylight Time)
Sunday 2: Sun Oct 15 2017 11:00:00 GMT+1100 (AUS Eastern Daylight Time)
Pourquoi le champ Heure de dimanche 2 se produit en 11, alors qu'un nouvel appel de date semblable pour lundi a donné lieu à 00?
Aucune idée pourquoi cela se passe, mais vous pourriez peut-être utiliser la 'nouvelle date (année, mois, date)' constructeur au lieu d'éviter l'ambiguïté. – H77