В Excel даты обрабатываются как числа, причем число представляет число дней после 31 декабря 1899 года. Таким образом, день 1 - 1 января 1900 года, а день 43102 - 3 января 2018 года. Но подождите ... ваши данные указывают на 2 января 2018 года!Оказывается, Microsoft считает, что 1900 год был високосным, и поэтому день 60 - это 29 февраля 1900 года, когда в реальном мире это было на самом деле 1 марта. В любом случае, это означает, что для дат после 28 февраля 1900 года необходимо вычесть одинот номера дня, чтобы получить правильную дату.Таким образом, чтобы преобразовать число дня Excel в дату в PHP, используйте следующий код:
$dayval = 43102; // you would read from your file here
$date = new DateTime('1899-12-31');
$date->modify("+$dayval day -1 day");
echo $date->format('Y-m-d');
Вывод:
2018-01-02