Год 2038 Чтение листов Excel в переполнение стека

У меня есть программа PHP, которая читает таблицы Excel с помощью Php Excel. В листе Excel есть только один столбец, отформатированный как «гггг-мм-дд чч-мм-сс».

Когда я читаю этот лист Excel с помощью Php Excel, все работает нормально, пока я не достигну даты выше 2038 года.

Теперь я прочитал проблему 2038 года и подумал, что смогу ее обнаружить и вернуть пользователю сообщение об ошибке, когда они введут дату> = 2038, но я не смогу, так как даты неверны.

Что еще хуже, они приходят как действительные даты.

Вот пример различных значений, которые я пробовал (это массив после чтения в PHP):

    INPUT == Exactly as written in excel sheet
OUTPUT == The output the PHPExcel Reader returns in the array
OUTPUT DATE            INPUT DATE
----------------------------------------------
2036-02-13 02:42:08 -- 2988-10-31 00:00:00
----------------------------------------------
2028-08-16 11:03:28 -- 2300-10-31 00:00:00
----------------------------------------------
1902-09-24 17:31:44 -- 2038-10-31 00:00:00
----------------------------------------------
2037-10-31 00:00:00 -- 2037-10-31 00:00:00
----------------------------------------------

Вывод кажется совершенно случайным, но все же действительной датой.

Я хочу быть в состоянии поймать даты выше 2038 года, чтобы вернуть сообщение пользователю.

Я использую PHP 32 бит.

Это код, который читает его в массив и печатает его:

$objPHPExcel = PHPExcel_IOFactory::load ( $this->pathToExcelFile);
$sheetData = $objPHPExcel->getActiveSheet ()->toArray ( null, true, true, false );
print_r ($sheetData, true);

Идеи?

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]