xionhack Posted May 15, 2010 Share Posted May 15, 2010 Hello. I want to show all the saturdays of this month, I tried the following code but its not working, can somebody help me? $dtFirstDay = date("j/n/Y", mktime(0, 0, 0, date("m") , date("d")-date("d")+1, date("Y"))); $dtLastDay = date("j/n/Y", mktime(0, 0, 0, date("m")+1 , date("d")-date("d"), date("Y"))); for($date = $dbFirstDay ; $date < $dtLastDay; $date = mktime(0,0,0,date("m", $date),date("d", $date)+1,date("Y", $date))){ if(date('w' ,$date) == 0){ echo $date; } } Link to comment https://forums.phpfreaks.com/topic/201846-only-show-saturdays-of-the-month/ Share on other sites More sharing options...
litebearer Posted May 15, 2010 Share Posted May 15, 2010 Grrrrrr the 'sledge hammer' approach... takes any date in the YYYY/MM/DD format and does some 'stuff' <?PHP ######################################### # function for getting # the first day # the last day # the number of days # in a given month - date must be in YYYY/MM/DD format ######################################### function first_last_number_Of_Month($given_date) { list($yr,$m,$dt) = split('/',$given_date); // separate year, month and date $first_day_of_month = $yr . "/" . $m . "/" . "01"; $first_day_ts = mktime( 0, 0, 0, $m, 1, $yr ); $last_day_of_month = $yr . "/" . $m . "/" . date("t",$first_day_ts); $number_of_days = date("t",$first_day_ts); $first_last_array = array($first_day_of_month,$last_day_of_month,$number_of_days); return $first_last_array; } ######################################### # function for calculating # the number of sundays, mondays, tuedays etc # there are in a given month # it uses the first_last_number_Of_Month function # # its returns the following array: # 0 = date of first day format YYYY/MM/DD # 1 = date of last day format YYYY/MM/DD # 2 = number of days in the month # 3 = number of sundays # 4 = number of mondays # 5 = number of tuesdays # 6 = number of wednesdays # 7 = number of thursdays # 8 = number of fridays # 9 = number of saturdays # # in a given month - date must be in YYYY/MM/DD format ######################################### function unique_weekdays_in_a_Month($given_date) { $first_last_array = first_last_number_Of_Month($given_date); $number_days = $first_last_array[2]; $i=0; while($i<$number_days) { $date = date("D m d Y", (strtotime(date("Y/m/d", strtotime($first_last_array[0])) . " +$i day"))); $week_day = date("D", (strtotime(date("Y/m/d", strtotime($first_last_array[0])) . " +$i day"))); switch ($week_day){ case "Sun": $sundays = $sundays +1; break; case "Mon": $mondays = $mondays + 1; break; case "Tue": $tuesdays = $tuesdays + 1; break; case "Wed": $wednesdays = $wednesdays + 1; break; case "Thu": $thursdays = $thursdays + 1; break; case "Fri": $fridays = $fridays + 1; break; default: $saturdays = $saturdays + 1; break; } $i++; } array_push ($first_last_array,$sundays,$mondays,$tuesdays,$wednesdays,$thursdays,$fridays,$saturdays); return $first_last_array; } ############################### # # END FUNCTIONS # # BEGIN EXAMPLES # ############################### $given_date = "2010/09/07"; $days_of_week_array = array ("Sun","Mon","Tue","Wed","Thu","Fri","Sat"); echo "For the given date of " . $given_date . ". We get the following: </p>"; $first_last_array = unique_weekdays_in_a_Month($given_date); $x = 0; while($x<7) { $i=0; while($i<$first_last_array[2]) { $next_day = (60*60*24) * $i; // increment seconds in a day $ts = strtotime($first_last_array[0]) + $next_day; // get timestamp for date $what_day = date('D', $ts); if($what_day == $days_of_week_array[$x]) { echo date('l jS \of F Y h:i:s A', $ts) . "<br>"; } $i++; } echo "<hr>"; $x++; } $ts1 = strtotime($first_last_array[0]); $new_date = date('l jS \of F Y h:i:s A', $ts1); echo "First day is " . $first_last_array[0] . " - aka - " . $new_date . "</p>"; $ts1 = strtotime($first_last_array[1]); $new_date = date('l jS \of F Y h:i:s A', $ts1); echo "Last day is " . $first_last_array[1] . " - aka - " . $new_date . "</p>"; echo "There are " . $first_last_array[2] . " days in the month.</p>"; echo "There are " . $first_last_array[3] . " sundays in the month.</p>"; echo "There are " . $first_last_array[4] . " mondays in the month.</p>"; echo "There are " . $first_last_array[5] . " tuesdays in the month.</p>"; echo "There are " . $first_last_array[6] . " wednesdays in the month.</p>"; echo "There are " . $first_last_array[7] . " thursdays in the month.</p>"; echo "There are " . $first_last_array[8] . " fridays in the month.</p>"; echo "There are " . $first_last_array[9] . " saturdays in the month.</p>"; ?> example: http://nstoia.com/demo/demo_date_stuff01/ makes sense? Link to comment https://forums.phpfreaks.com/topic/201846-only-show-saturdays-of-the-month/#findComment-1058892 Share on other sites More sharing options...
kenrbnsn Posted May 15, 2010 Share Posted May 15, 2010 Here it is in general. Modify for your needs: <?php $month_start = strtotime('2010-05-01'); $month_end = strtotime('2010-05-31'); for($i=$month_start;$i<=$month_end;$i += 86400) { if (date('l',$i) == 'Saturday') { echo date('Y-m-d',$i) . "<br>\n"; } } ?> Ken Link to comment https://forums.phpfreaks.com/topic/201846-only-show-saturdays-of-the-month/#findComment-1058912 Share on other sites More sharing options...
xionhack Posted June 6, 2010 Author Share Posted June 6, 2010 Thanks! how would u modify this and show all the saturdays and tuesdays of the month?! Thanks! Link to comment https://forums.phpfreaks.com/topic/201846-only-show-saturdays-of-the-month/#findComment-1068662 Share on other sites More sharing options...
ignace Posted June 6, 2010 Share Posted June 6, 2010 Inspired on kenrbnsn's code: $saturday_start = strtotime('first Saturday of May 2010'); $saturday_end = strtotime('last Saturday of May 2010'); $plus7days = 604800; // 86400 * 7 for ($i = $saturday_start; $i <= $saturday_end; $i += $plus7days) { echo date('Y-m-d', $i); } $tuesday_start = strtotime('first Tuesday of May 2010'); $tuesday_end = strtotime('last Tuesday of May 2010'); for ($i = $tuesday_start; $i <= $tudesday_end; $i += $plus7days) { echo date('Y-m-d', $i); } Link to comment https://forums.phpfreaks.com/topic/201846-only-show-saturdays-of-the-month/#findComment-1068668 Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.