Согласно документации PhpSpreadsheet:
Обратите внимание, что базовой датой является первый день; строго говоря, базовая дата 0 — это «1899-12-31»: Excel рассматривает любое значение от 0 до 1 как чисто значение времени. Попытка отобразить 0 с использованием маски формата даты, например «гггг-мм-дд», приведет к получению недопустимой даты, например «1900-01-00», а не «1899-12-31». Однако при использовании маски формата времени, например «чч:мм:сс», она будет отображаться как «00:00:00» (полночь). Значения меньше 0 недопустимы в качестве даты или времени, поэтому отрицательное значение в ячейке с маской числового формата даты будет отображаться в Excel как «#############».
Open/LibreOffice и Gnumeric не имеют этого ограничения, а отрицательные значения даты/времени распознаются и форматируются правильно. Однако не рекомендуется полагаться на такое поведение при работе с PhpSpreadsheet."
В версии 1.19 мы решили эту проблему, настроив следующий параметр:
Код: Выделить всё
Shared_Date::setExcelCalendar(Shared_Date::CALENDAR_MAC_1904);
Есть ли альтернативное решение?
Подробнее здесь: https://stackoverflow.com/questions/792 ... preadsheet
Мобильная версия