Отрицательные значения времени в PhpSpreadsheetPhp

Кемеровские программисты php общаются здесь
Ответить
Anonymous
 Отрицательные значения времени в PhpSpreadsheet

Сообщение Anonymous »

Наше программное обеспечение предназначено для учета рабочего времени, поэтому нам необходимо создавать файлы Excel, содержащие отрицательные значения времени.
Согласно документации 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);
Недавно мы обновились до версии 2.2, и эта конфигурация больше не работает.
Есть ли альтернативное решение?

Подробнее здесь: https://stackoverflow.com/questions/792 ... preadsheet
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Php»