/**
 * This function calculates the first [WEEKDAY] of a month.
 * The day to find is passed as an integer to the function.
 *
 * To use: Pass the month, year and day (as an integer 0-6) to the function.
 *
 * @param int $month
 * @param int $year
 * @param int $day            [0 = sunday, 1 = monday, 2 = tuesday, 3 = wednesday, 4 = thursday, 5 = friday, 6 = saturday]
 * @return date
 */

function getFirstDay($month,$year,$day){

        $num = date("w",mktime(0,0,0,$month,1,$year));
        if($num==$day) {
                return date("Y-m-d H:i:s",mktime(0,0,0,$month,1,$year));
        }
        elseif($num>$day) {
                return date("Y-m-d H:i:s",mktime(0,0,0,$month,1,$year)+(86400*((7+$day)-$num)));
        }
        else {
                return date("Y-m-d H:i:s",mktime(0,0,0,$month,1,$year)+(86400*($day-$num)));
        }

}

// Example of use:
$sunday = getFirstDay('1','2009',0); // Sunday
$monday = getFirstDay('1','2009',1); // Monday
$tuesday = getFirstDay('1','2009',2); // Tuesday
$wednesday = getFirstDay('1','2009',3); // Wednesday
$thursday = getFirstDay('1','2009',4); // Thursday
$friday = getFirstDay('1','2009',5); // Friday
$saturday = getFirstDay('1','2009',6); // Saturday

echo "First Sunday:    " . $sunday . "<br />";
echo "First Monday:    " . $monday . "<br />";
echo "First Tuesday:   " . $tuesday . "<br />";
echo "First Wednesday: " . $wednesday . "<br />";
echo "First Thursday:  " . $thursday . "<br />";
echo "First Friday:    " . $friday . "<br />";
echo "First Saturday:  " . $saturday . "<br /><br />";