I am using PHPExcel to create an xls template that the user can load and fill out using the data he wants. As you know, Excel saves the date in digital format. I use this function to convert data and return timestamps:
public static function excelToTimestamp($excelDateTime, $isMacExcel=false) {
$myExcelBaseDate = $isMacExcel ? 24107 : 25569;
if (!$isMacExcel && $excelDateTime < 60) {
--$myExcelBaseDate;
}
if ($excelDateTime >= 1) {
$timestampDays = $excelDateTime - $myExcelBaseDate;
$timestamp = round($timestampDays * 86400);
if (($timestamp <= PHP_INT_MAX) && ($timestamp >= -PHP_INT_MAX)) {
$timestamp = intval($timestamp);
}
} else {
$hours = round($excelDateTime * 24);
$mins = round($excelDateTime * 1440) - round($hours * 60);
$secs = round($excelDateTime * 86400) - round($hours * 3600) - round($mins * 60);
$timestamp = (integer) gmmktime($hours, $mins, $secs);
}
return $timestamp;
}
The problem is that I have to determine if the file that the user imported into the system using excel for mac or windows was filled in so that I can set the date correctly (Mac uses the 1904 calendar and 1900 for windows).
I would like to know if there is a way to detect it using PHPExcel. If not, I can allow the user to report this using a beacon, perhaps ...
source