<script type="text/javascript"> function getDateRangeOfWeek(weekNo){ var d1 = new Date(); numOfdaysPastSinceLastMonday = eval(d1.getDay()- 1); d1.setDate(d1.getDate() - numOfdaysPastSinceLastMonday); var weekNoToday = d1.getWeek(); var weeksInTheFuture = eval( weekNo - weekNoToday ); d1.setDate(d1.getDate() + eval( 7 * weeksInTheFuture )); var rangeIsFrom = eval( d1.getMonth()+1) + "/" + d1.getDate() + "/" + d1.getFullYear(); d1.setDate(d1.getDate() + 6); var rangeIsTo = eval(d1.getMonth()+1) +"/" + d1.getDate() + "/" + d1.getFullYear() ; return rangeIsFrom + " to "+rangeIsTo; }; /** * Returns the week number for this date. dowOffset is the day of week the week * "starts" on for your locale - it can be from 0 to 6. If dowOffset is 1 (Monday), * the week returned is the ISO 8601 week number. * @param int dowOffset * @return int */ Date.prototype.getWeek = function (dowOffset) { /*getWeek() was developed by Nick Baicoianu at MeanFreePath: http://www.meanfreepath.com */ dowOffset = typeof(dowOffset) == 'int' ? dowOffset : 0; //default dowOffset to zero var newYear = new Date(this.getFullYear(),0,1); var day = newYear.getDay() - dowOffset; //the day of week the year begins on day = (day >= 0 ? day : day + 7); var daynum = Math.floor((this.getTime() - newYear.getTime() - (this.getTimezoneOffset()-newYear.getTimezoneOffset())*60000)/86400000) + 1; var weeknum; //if the year starts before the middle of a week if(day < 4) { weeknum = Math.floor((daynum+day-1)/7) + 1; if(weeknum > 52) { nYear = new Date(this.getFullYear() + 1,0,1); nday = nYear.getDay() - dowOffset; nday = nday >= 0 ? nday : nday + 7; /*if the next year starts before the middle of the week, it is week #1 of that year*/ weeknum = nday < 4 ? 1 : 53; } } else { weeknum = Math.floor((daynum+day-1)/7); } return weeknum; }; </script>
function TEST(){ var numeroSemaine = 5; alert(getDateRangeOfWeek(numeroSemaine)); }
$cY = (int)date('Y'); $cW = (int)date("W"); $Lundi= get_date_debut_semaine($cW,$cY); $Vendredi = date('Y-m-d',strtotime(date("Y-m-d", strtotime($DateDeb )) . " +6 day")); /** *------------------------------------------------- * function get_date_debut_semaine * @param type $numSemaine * @param type $annee * @return type *------------------------------------------------- */ function get_date_debut_semaine($numSemaine,$annee){ $timeStampPremierJanvier = strtotime($annee . '-01-01'); $jourPremierJanvier = date('w', $timeStampPremierJanvier); //-- recherche du N° de semaine du 1er janvier ------------------- $numSemainePremierJanvier = date('W', $timeStampPremierJanvier); //-- nombre à ajouter en fonction du numéro précédent ------------ $decallage = ($numSemainePremierJanvier == 1) ? $numSemaine - 1 : $numSemaine; //-- timestamp du jour dans la semaine recherchée ---------------- $timeStampDate = strtotime('+' . $decallage . ' weeks', $timeStampPremierJanvier); //-- recherche du lundi de la semaine en fonction de la ligne précédente --------- $jourDebutSemaine = ($jourPremierJanvier == 1) ? date('Y-m-d', $timeStampDate) : date('Y-m-d', strtotime('last monday', $timeStampDate)); return $jourDebutSemaine; }
var rangeIsFrom = eval (d1.getMonth()+1) + "/" + d1.getDate() + "/" + d1.getFullYear();
var rangeIsFrom = eval d1.getDate() + "/" + (d1.getMonth()+1) + "/" + d1.getFullYear();
<!-- FONCTIONEMENT SOUHAITER : 1- Lors de l'init de la page avoir Nweek = au numéro de la semaine en cour. 2- Lors de l'init MDay et Fday prendront la valeur de la date du Lundi et du Vendredi de la semaine NWeek. 3- Si on change la valeur de NWeek et quelle est conprise entre 1 et 52 On recalcule MDay et FDay pour qu'il corresponde au date du Lundi et du vendredi de la semaine sélectionner. 4- Si on appuis sur le boutton RFilterWeek, NWeek prend la valeur de la semeine actuel et on recalcule MDay et FDay pour qu'il corresponde au date du Lundi et du vendredi de la semaine actuel. --> <html> <head> <meta http-equiv="content-type" content="text/php; charset=ISO-8859-1" /> <!-- <script type="text/javascript" src="js.js" ></script> --> </head> <body> <input type="button" id="buton" onClick="TEST();"> <input type="text" id="NWeek" name="NWeek" value = <?php echo date('W');?> size="2"></input> Date Monday: <input type="date" id="MDay" name="MDay" value = "" size="9"></input> Date Friday: <input type="date" id="FDay" name="FDay" value = "" size="9"></input> <script type="text/javascript"> function getDateRangeOfWeek(weekNo) { var d1 = new Date(); numOfdaysPastSinceLastMonday = eval(d1.getDay()- 1); d1.setDate(d1.getDate() - numOfdaysPastSinceLastMonday); var weekNoToday = d1.getWeek(); var weeksInTheFuture = eval( weekNo - weekNoToday ); d1.setDate(d1.getDate() + eval( 5 * weeksInTheFuture )); var rangeIsFrom = eval (d1.getMonth()+1) + "/" + d1.getDate() + "/" + d1.getFullYear(); <!-- pourquoi sa ne marche pas avec les argument dans se sans pour avoir la date sous format dd/mm/yyy? avec eval d1.getDate() + "/" + (d1.getMonth()+1) + "/" + d1.getFullYear(); --> d1.setDate(d1.getDate() + 3); var rangeIsTo = eval (d1.getMonth()+1) +"/" + d1.getDate() + "/" + d1.getFullYear() ; return MDay.value = var rangeIsFrom; <!-- Méssage début (Lundi) to fin(Vendredi) de semaine à transmettre dans des inputs (MDay et FDay) sans msgbox --> return FDay.value = var rangeIsTo; }; /** * Returns the week number for this date. dowOffset is the day of week the week * "starts" on for your locale - it can be from 0 to 6. If dowOffset is 1 (Monday), * the week returned is the ISO 8601 week number. * @param int dowOffset * @return int */ Date.prototype.getWeek = function (dowOffset) { /*getWeek() was developed by Nick Baicoianu at MeanFreePath: http://www.meanfreepath.com */ dowOffset = typeof(dowOffset) == 'int' ? dowOffset : 0; //default dowOffset to zero var newYear = new Date(this.getFullYear(),0,1); var day = newYear.getDay() - dowOffset; //the day of week the year begins on day = (day >= 0 ? day : day + 7); var daynum = Math.floor((this.getTime() - newYear.getTime() - (this.getTimezoneOffset()-newYear.getTimezoneOffset())*60000)/86400000) + 1; var weeknum; //if the year starts before the middle of a week if(day < 4) { weeknum = Math.floor((daynum+day-1)/7) + 1; if(weeknum > 52) { nYear = new Date(this.getFullYear() + 1,0,1); nday = nYear.getDay() - dowOffset; nday = nday >= 0 ? nday : nday + 7; /*if the next year starts before the middle of the week, it is week #1 of that year*/ weeknum = nday < 4 ? 1 : 53; } } else { weeknum = Math.floor((daynum+day-1)/7); } return weeknum; }; function TEST() { var numeroSemaine = NWeek.value; <!-- Récupére la valeur de NWeek pour déterminer le début et la fin de la semaine --> alert(getDateRangeOfWeek(numeroSemaine)); } </script> </body> </html>
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question<!-- FONCTIONNEMENT SOUHAITER : 1- Lors de l'init de la page avoir Nweek = au numéro de la semaine en cour. 2- Lors de l'init MDay et Fday prendront la valeur de la date du Lundi et du Vendredi de la semaine NWeek. 3- Si on change la valeur de NWeek et quelle est comprise entre 1 et 52 On recalcule MDay et FDay pour qu'il corresponde au date du Lundi et du vendredi de la semaine sélectionner. 4- Si on appuis sur le bouton RFilterWeek, NWeek prend la valeur de la semaine actuel et on recalcule MDay et FDay pour qu'il corresponde au date du Lundi et du vendredi de la semaine actuel. --> <html> <head> <meta http-equiv="content-type" content="text/php; charset=ISO-8859-1" /> <!-- <script type="text/javascript" src="js.js" ></script> --> </head> <body onload="MAJ()";> <input type="button" id="buton" value="MAJ" onClick="MAJ();"> <input type="text" id="NWeek" name="NWeek" value = <?php echo date('W');?> size="2"></input> <input type="hidden" id="Week" name="Week" value = <?php echo date('W');?> size="2"></input> Date Monday: <input type="date" id="MDay" name="MDay" size="9"></input> Date Friday: <input type="date" id="FDay" name="FDay" size="9"></input> <input type="button" id="RFilterDate" name="RFilterDate" value="RESET" onClick="RESET();"> <script type="text/javascript"> function getDateRangeOfWeek(weekNo) { var d1 = new Date(); numOfdaysPastSinceLastMonday = eval(d1.getDay()- 1); d1.setDate(d1.getDate() - numOfdaysPastSinceLastMonday); var weekNoToday = d1.getWeek(); var weeksInTheFuture = eval( weekNo - weekNoToday ); d1.setDate(d1.getDate() + eval( 5 * weeksInTheFuture )); var rangeIsFrom = eval (d1.getMonth()+1) + "/" + d1.getDate() + "/" + d1.getFullYear(); <!--- > d1.setDate(d1.getDate() + 3); var rangeIsTo = eval (d1.getMonth()+1) +"/" + d1.getDate() + "/" + d1.getFullYear() ; document.getElementById("MDay").value =rangeIsFrom; document.getElementById("FDay").value =rangeIsTo; }; /** * Returns the week number for this date. dowOffset is the day of week the week * "starts" on for your locale - it can be from 0 to 6. If dowOffset is 1 (Monday), * the week returned is the ISO 8601 week number. * @param int dowOffset * @return int */ Date.prototype.getWeek = function (dowOffset) { /*getWeek() was developed by Nick Baicoianu at MeanFreePath: http://www.meanfreepath.com */ dowOffset = typeof(dowOffset) == 'int' ? dowOffset : 0; //default dowOffset to zero var newYear = new Date(this.getFullYear(),0,1); var day = newYear.getDay() - dowOffset; //the day of week the year begins on day = (day >= 0 ? day : day + 7); var daynum = Math.floor((this.getTime() - newYear.getTime() - (this.getTimezoneOffset()-newYear.getTimezoneOffset())*60000)/86400000) + 1; var weeknum; //if the year starts before the middle of a week if(day < 4) { weeknum = Math.floor((daynum+day-1)/7) + 1; if(weeknum > 52) { nYear = new Date(this.getFullYear() + 1,0,1); nday = nYear.getDay() - dowOffset; nday = nday >= 0 ? nday : nday + 7; /*if the next year starts before the middle of the week, it is week #1 of that year*/ weeknum = nday < 4 ? 1 : 53; } } else { weeknum = Math.floor((daynum+day-1)/7); } return weeknum; }; function MAJ() { var numeroSemaine = NWeek.value; <!-- Récupére la valeur de NWeek pour déterminer le début et la fin de la semaine --> getDateRangeOfWeek(numeroSemaine); } function RESET() { document.getElementById("NWeek").value = document.getElementById("Week").value; <!-- Reset la valeur de NWeek --> var numeroSemaine = NWeek.value; <!-- Récupéré la valeur de NWeek pour déterminer le début et la fin de la semaine --> getDateRangeOfWeek(numeroSemaine); } </script> </body> </html>
<!-- FONCTIONNEMENT SOUHAITER : 1- Lors de l'init de la page avoir Nweek = au numéro de la semaine en cour. 2- Lors de l'init MDay et Fday prendront la valeur de la date du Lundi et du Vendredi de la semaine NWeek. 3- Si on change la valeur de NWeek et quelle est comprise entre 1 et 52 On recalcule MDay et FDay pour qu'il corresponde au date du Lundi et du vendredi de la semaine sélectionner. 4- Si on appuis sur le bouton RFilterWeek, NWeek prend la valeur de la semaine actuel et on recalcule MDay et FDay pour qu'il corresponde au date du Lundi et du vendredi de la semaine actuel. --> <html> <head> <meta http-equiv="content-type" content="text/php; charset=ISO-8859-1" /> <!-- <script type="text/javascript" src="js.js" ></script> --> </head> <body onload="MAJ()";> <input type="button" id="buton" value="MAJ" onClick="MAJ();"> <input type="text" id="NWeek" name="NWeek" value = <?php echo date('W');?> size="2"></input> <input type="hidden" id="Week" name="Week" value = <?php echo date('W');?> size="2"></input> Date Monday: <input type="date" id="MDay" name="MDay" size="9"></input> Date Friday: <input type="date" id="FDay" name="FDay" size="9"></input> <input type="button" id="RFilterDate" name="RFilterDate" value="RESET" onClick="RESET();"> <script type="text/javascript"> function getDateRangeOfWeek(weekNo) { var d1 = new Date(); numOfdaysPastSinceLastMonday = eval(d1.getDay()- 1); d1.setDate(d1.getDate() - numOfdaysPastSinceLastMonday); var weekNoToday = d1.getWeek(); var weeksInTheFuture = eval( weekNo - weekNoToday ); d1.setDate(d1.getDate() + eval( 7 * weeksInTheFuture )); var rangeIsFrom = d1.getDate()+ "/" + (d1.getMonth()+1) + "/" + d1.getFullYear(); d1.setDate(d1.getDate() + 4); var rangeIsTo = d1.getDate()+ "/" + (d1.getMonth()+1) + "/" + d1.getFullYear(); document.getElementById("MDay").value =rangeIsFrom; document.getElementById("FDay").value =rangeIsTo; }; /** * Returns the week number for this date. dowOffset is the day of week the week * "starts" on for your locale - it can be from 0 to 6. If dowOffset is 1 (Monday), * the week returned is the ISO 8601 week number. * @param int dowOffset * @return int */ Date.prototype.getWeek = function (dowOffset) { /*getWeek() was developed by Nick Baicoianu at MeanFreePath: http://www.meanfreepath.com */ dowOffset = typeof(dowOffset) == 'int' ? dowOffset : 0; //default dowOffset to zero var newYear = new Date(this.getFullYear(),0,1); var day = newYear.getDay() - dowOffset; //the day of week the year begins on day = (day >= 0 ? day : day + 7); var daynum = Math.floor((this.getTime() - newYear.getTime() - (this.getTimezoneOffset()-newYear.getTimezoneOffset())*60000)/86400000) + 1; var weeknum; //if the year starts before the middle of a week if(day < 4) { weeknum = Math.floor((daynum+day-1)/7) + 1; if(weeknum > 52) { nYear = new Date(this.getFullYear() + 1,0,1); nday = nYear.getDay() - dowOffset; nday = nday >= 0 ? nday : nday + 7; /*if the next year starts before the middle of the week, it is week #1 of that year*/ weeknum = nday < 4 ? 1 : 53; } } else { weeknum = Math.floor((daynum+day-1)/7); } return weeknum; }; function MAJ() { var numeroSemaine = NWeek.value; <!-- Récupére la valeur de NWeek pour déterminer le début et la fin de la semaine --> getDateRangeOfWeek(numeroSemaine); } function RESET() { document.getElementById("NWeek").value = document.getElementById("Week").value; <!-- Reset la valeur de NWeek --> var numeroSemaine = NWeek.value; <!-- Récupére la valeur de NWeek pour déterminer le début et la fin de la semaine --> getDateRangeOfWeek(numeroSemaine); } </script> </body> </html>
eval (d1.getMonth()+1) +"/" + d1.getDate() + "/" + d1.getFullYear()