Добавление X недель к дате с использованием PHP 5.2

Мой пакет виртуального хостинга на 1and1 включает только PHP 5.2.17 - поэтому я не могу использовать DateTime объект. Очень надоедливый!

У меня сейчас есть этот код

$eventDate = new DateTime('2013-03-16'); // START DATE
$finishDate = $eventDate->add(new DateInterval('P'.$profile["Weeks"].'W'));

Но, очевидно, это не сработает.

Как я могу сделать то же самое с кодом, который будет работать с PHP5.2? (Код добавляет X количество недель к определенной дате.)

2 ответа

Решение

Просто получите метку времени с помощью strtotime() и добавьте x * секунд недели

$newTime = strtotime('2013-03-16') + ($numberOfWeeks * 60 * 60 * 24 * 7); // 604800 seconds

или что я только что узнал:

$newTime = strtotime('+'.$numberOfWeeks.' weeks', strtotime('2013-03-16'));

В качестве альтернативы вы можете использовать DateTime учебный класс. Используйте метод modify изменить дату (как в strtotime):

$d = new DateTime('2013-03-16');
$d->modify('+'.$numberOfWeeks.' weeks');

Вы можете использовать объект DateTime в PHP 5.2, это просто метод add, который был добавлен в PHP 5.3. Вы можете использовать метод модификации в PHP 5.2.

$finishDate = $eventDate->modify('+'.$profile["Weeks"].' weeks');

Обратите внимание, что это изменит объект, над которым вы выполняете операцию. Таким образом, $eventDate также будет изменен.

Другие вопросы по тегам