Слушай, я знаю, что мы должны идти дальше и уже устанавливать новейший php. Но я не могу. Так что я застрял с этим фрагментом кода, который я только что получил от фрилансера:
function daysToDate($days) {
$interval = DateInterval::createFromDateString("+".round($days)." days");
$d0 = new DateTime("1970-01-01");
$d1 = $d0->add($interval);
$res = $d1->format("Y-m-d");
return $res;
}
Возвращает строковое представление даты, обозначенной количеством дней с начала эпохи ("1970-01-01"). Моя проблема в том, что я получаю следующее сообщение об ошибке:
Неустранимая ошибка: класс DateInterval не найден
Просматривая это в интернете, я обнаружил, что DateInterval
для PHP> = 5.3. Я бегу 5.2. Мне уже приходилось кодировать обходной путь для обратной функции, когда я тестировал это на своем ПК:
/*
* given a timestamp in the format 'Y-m-d h:i:s' (e.g. '2011-01-21 13:55:00'),
* returns the count of days since the epoch ('1970-01-01 00:00:00')
*
* BUGFIX: I am using the strtotime here instead of DateInterval::days,
* since that field is not set correctly in windows versions of PHP
* (see PHP Bug #51184)
*/
function dateToDays($timestampstr) {
$SECONDS_PER_DAY = 86400;
$t = strtotime($timestampstr);
return $t / $SECONDS_PER_DAY;
}
Теперь на моем тестовом сервере я обнаружил, что у меня вообще нет доступа к DateInterval
.
Сейчас я ухожу на ланч и вознагражу любого, кто успешно закодирует версию PHP 5.2, с букетом интернетов, акцептом и upvote.