Арифметика даты в PHP
Есть ли функция PHP, которую я могу использовать, чтобы сделать что-то вроде следующего:
- Получить дату 6 месяцев назад (например, сейчас - 6 месяцев)?
- Получить дату через 2 года (например, сейчас + 2 года)?
Ответы
Ответ 1
Да, есть: strtotime():
- 6 месяцев назад:
strtotime("-6 months");
- 2 года:
strtotime("+2 years");
Они вернут отметки времени Unix. Поэтому вы можете поместить результат в date()
или localtime()
или gmtime()
.
Пожалуйста, не пытайтесь вычесть 6 месяцев или добавить 2 года секунд в time()
. Это не учитывает такие вещи, как летнее или секундное скачкообразное изменение, и все же дает вам значение в секундах, что вряд ли будет необходимой вам. Пусть функции библиотеки выполняются.
Ответ 2
Вот так:
$date6monthsago = strtotime('-6 months');
$date2year = strtotime('+2 year');
Ответ 3
Выберите в соответствии с вашим использованием следующий код.
echo date('m/d/Y',strtotime("-6 months")); //ago 6month o/p 05/23/2011
echo date('d-m-Y',strtotime("6 months")); //comming 6month o/p 23-05-2012
echo date('m.d.Y',strtotime("+2 years")); //comming year o/p 11.23.2013
Ответ 4
http://de2.php.net/manual/en/datetime.add.php, и подобные "новые" методы также могут быть вашим другом.