The reason for this is that the PHP date/timestamp is actually an integer with a range between -2147483648 and 2147483647 on a 32-bit server. With the PHP base date of January 1st 1970 00:00:00 UTC, and the date/timestamp being measured as the number of
seconds from that point, this gives a date range of between Friday, 13th December 1901 20:45:54 UTC to Tuesday, 19th January 2038 03:14:07 UTC.
Prior to PHP 5.1.0 on Windows servers, negative values weren't used for date/timestamps, so dates prior to 1st January 1970 weren't possible
The Excel date is a 32-bit positive floating point value, with a (default) base date of January 1, 1900 00:00:00 (the Windows 1900 calendar) = 1.0, and measures the number of days since that base date, with times being represented by the fractional
part... .25 corresponding to 6am, .5 to midday and .75 to 6pm.
PHPExcel holds the date internally as the Excel value, and the PHPExcel_Shared_Date::ExcelToPHP() method allows you to convert that value to a PHP date/timestamp. However, it is subject to the PHP date range limitations, as you have discovered.
There are two options that allow you to work with the full Excel date range.
Option 1 is to work on a 64-bit PHP server, with the PHP date/timestamp as a 64-bit integer. This gives a much wider date range using the standard PHP date/timestamp.
Option 2 is to use PHP's
date/time objects, which inherently support a much wider date range, even on 32-bit PHP. PHPExcel uses these internally to handle date conversions. The PHPExcel_Shared_Date::ExcelToPHPObject() will convert an Excel date/time to a PHP date/time object.
A couple of other minor quirks that you may notice when playing with dates: 29th February 1900 is a valid date in Excel, even though 1900 wasn't a leap year; and Excel workbooks may also have a different base date, the Mac 1904 calendar with a
base date of 2nd Jan 1904 = 1.0.
The Fortran 77 background doesn't particularly show... if you'd tried to write it as a do loop, then I might have suspected :) but it's nice to find somebody else that still knows Fortran.