<?php
/**
* int nth_day_of_month(int $nbr, str $day, int $mon, int $year)
* $nbr = nth weekday to find
* $day = full name of weekday, e.g. "Saturday"
* $mon = month 1 - 12
* $year = year 1970, 2007, etc.
* returns UNIX time
*/
function nth_day_of_month($nbr, $day, $mon, $year)
{
$date = mktime(0, 0, 0, $mon, 0, $year);
if($date == 0)
{
user_error(__FUNCTION__."(): Invalid month or year", E_USER_WARNING);
return(FALSE);
}
$day = ucfirst(strtolower($day));
if(!in_array($day, array('Sunday', 'Monday', 'Tuesday', 'Wednesday',
'Thursday', 'Friday', 'Saturday')))
{
user_error(__FUNCTION__."(): Invalid day", E_USER_WARNING);
return(FALSE);
}
for($week = 1; $week <= $nbr; $week++)
{
$date = strtotime("next $day", $date);
}
return($date);
}
// USAGE:
echo date("n j", nth_day_of_month(2, 'saturday', 8, 2007));
?>