Marrvel Posted August 11, 2006 Share Posted August 11, 2006 Hi everyone,Haven't been around here lately but i'm stuck on a problem so I've come crawling back.I'm trying to write a script that get's all the mondays between 2 dates starting from the monday of the current week,heres my code so far:[code]<?php$today = date('w');$max_date = "2006-12-31";$max_day = date('w',strtotime($max_date." 01:01:01"));/* this gets the start date by going back to the nearest monday from today*/if($today <> 1) { $days_from_mon = ($today == 0) ? 6 : $today -1; $first_monday = date('Y-m-d',strtotime("-".$days_from_mon." days"));}else $first_monday = date('Y-m-d');/* this gets the last monday by going back to the nearest monday from the max date */if($max_day <> 1){ $days_from_mon = ($max_day == 0) ? 6 : $max_day -1; $last_monday = strtotime($max_date) - (86400 * $days_from_mon);}else $last_monday = $max_date;echo $first_monday." - ".date('Y-m-d',$last_monday)."<br>";/* this loops though weeks until it meets the max date*/for($i=0;$week_start <> $last_monday;$i++){ $week_start = strtotime($first_monday) + (604800 * $i); #this adds $i number of weeks to the original week echo date('Y-m-d',$week_start)."<br />"; }?>[/code]This script seems to work fine until it gets to the end of October then for some reason it goes to a sunday which sends it into a infinite loop. I just can't figure out why this happensThanks in advanceRob Quote Link to comment Share on other sites More sharing options...
Barand Posted August 11, 2006 Share Posted August 11, 2006 try[code]<?php$today = (date('w') + 6) % 7;$max_date = strtotime ('2006-12-31');$mon = strtotime ("-$today days", mktime(0,0,0));while ($mon <= $max_date) { echo date('D, d M Y', $mon). '<br />'; $mon = strtotime ('+7 days', $mon);}?>[/code] Quote Link to comment Share on other sites More sharing options...
Marrvel Posted August 14, 2006 Author Share Posted August 14, 2006 Thanks very much Barand, That works a treat. Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.