Год 2038 Чтение листов Excel в PHP

У меня есть программа 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 ответов

Другие вопросы по тегам