Be aware that date() and mktime() only work as long as you move within the UNIX era (1970 - 2038 / 0x0 - 0x7FFFFFFF in seconds). Outside that era those functions are only generating errors.
In other words: mktime(0, 0, 0, 12, 31, 1969) *DOES NOT* work (and so doesn't date() fed with with mktime()'s result from above). But cal_to_jd(CAL_GREGORIAN, 12, 11, 1969) *DOES WORK*.
And please note that the calendar-extension's functions arguments follow the US date order: month - day - year.
(PHP 4, PHP 5)
JDDayOfWeek — Returns the day of the week
$mode= CAL_DOW_DAYNO ] )
Returns the day of the week. Can return a string or an integer depending on the mode.
A julian day number as integer
Calendar week modes Mode Meaning 0 (Default) Return the day number as an int (0=Sunday, 1=Monday, etc) 1 Returns string containing the day of week (English-Gregorian) 2 Return a string containing the abbreviated day of week (English-Gregorian)
The gregorian weekday as either an integer or string.