Конвертировать дату PHP в Excel? - PullRequest
5 голосов
/ 27 июля 2011

Формат даты в Excel, как я полагаю, - число дней с 30 декабря 1899 года. (Почему? Потому что он основан на 01.01.1900, но по ошибке включает високосный день в 1900 году и один.в первые пару месяцев 1900 года это нормально, но потом все идет не так. 01.01.1901 в Excel - «367».)

Итак, как мне преобразовать дату или метку времени из PHP (чтообычно хранится в виде метки времени Unix (количество секунд с 01.01.1970) в Excel?

В PHP 5.1.6?

Да, держу пари, ты не ожидал, что это произойдет.Поэтому у меня нет ни одного из объектов DateTime, функций date_create (), date_diff () и т. Д., Доступных мне.

Возможно ли это даже без простой записи дня Excel для 01.01.1970 иработа оттуда?И есть ли DST-защищенная версия?

1 Ответ

10 голосов
/ 27 июля 2011

Если я не ошибаюсь, то есть 86400 секунд в дне и 25569 дней между 30 декабря 1899 года и 01 января 1970 года. Итак, чтобы преобразовать метку времени Unix в дату Excel, формула

ExcelDate = 25569 + UnixTS / 86400

должно работать.Конечно, эта формула верна только для UTC.(Кроме того, он игнорирует високосные секунды.) Для других часовых поясов, если вы знаете смещение (в секундах!) От UTC, вы можете просто добавить его к отметке времени, прежде чем использовать формулу выше.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...