Добавление 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 также будет изменен.