Арифметика даты в PHP

Есть ли функция PHP, которую я могу использовать, чтобы сделать что-то вроде следующего:

  • Получите дату 6 месяцев назад (например, сейчас – 6 месяцев)?
  • Получите дату через 2 года (например, сейчас + 2 года)?

Да, есть: strtotime () :

  1. 6 месяцев назад: strtotime("-6 months");
  2. 2 года: strtotime("+2 years");

Они вернут отметки времени Unix. Таким образом, вы можете поместить результат в date() или localtime() или gmtime() .

Пожалуйста, не пытайтесь вычесть 6 месяцев или добавить 2 года от time() . Это не учитывает такие вещи, как летнее или секундное скачкообразное изменение, и все же дает вам значение в секундах, что вряд ли будет необходимой вам. Пусть функции библиотеки выполняют это.

Как это:

 $date6monthsago = strtotime('-6 months'); $date2year = strtotime('+2 year'); 

Выберите в соответствии с вашим использованием следующий код ..

 echo date('m/d/Y',strtotime("-6 months")); //ago 6month o/p 05/23/2011 echo date('dm-Y',strtotime("6 months")); //comming 6month o/p 23-05-2012 echo date('mdY',strtotime("+2 years")); //comming year o/p 11.23.2013 

http://de2.php.net/manual/en/datetime.add.php и подобные «новые» методы могут также быть вашим другом.