Как я могу получить дату после 15 дней / 1 месяц в PHP? - PullRequest
23 голосов
/ 06 мая 2009

В моем PHP-коде у меня есть дата в моей переменной "$ postsDate".
Теперь я хочу получить дату через 7 дней, 15 дней, один месяц и 2 месяца.

Какую функцию даты я должен использовать?

Выходной формат даты должен быть в формате США.

Ответы [ 6 ]

34 голосов
/ 06 мая 2009

Использовать strtotime.

$newDate = strtotime('+15 days',$date)

$ newDate теперь будет через 15 дней после $ date. $ date - это время Unix.

http://uk.php.net/strtotime

17 голосов
/ 06 мая 2009

попробуйте

$date = date("Y-m-d");// current date

$date = strtotime(date("Y-m-d", strtotime($date)) . " +1 day");
$date = strtotime(date("Y-m-d", strtotime($date)) . " +1 week");
$date = strtotime(date("Y-m-d", strtotime($date)) . " +2 week");
$date = strtotime(date("Y-m-d", strtotime($date)) . " +1 month");
$date = strtotime(date("Y-m-d", strtotime($date)) . " +30 days");
14 голосов
/ 25 ноября 2012

Начиная с PHP 5.2.0, доступна DateTime сборка в классе

$date = new DateTime($postedDate);

$date->modify('+1 day');

echo $date->format('Y-m-d');

http://php.net/manual/en/class.datetime.php

9 голосов
/ 23 мая 2013
$date=strtotime(date('Y-m-d'));  // if today :2013-05-23

$newDate = date('Y-m-d',strtotime('+15 days',$date));

echo $newDate; //after15 days  :2013-06-07

$newDate = date('Y-m-d',strtotime('+1 month',$date));

echo $newDate; // after 1 month :2013-06-23
3 голосов
/ 22 мая 2013

Это очень просто; попробуйте это:

$date = "2013-06-12"; // date you want to upgade

echo $date = date("Y-m-d", strtotime($date ." +1 day") );
2 голосов
/ 06 мая 2009

Каков формат ввода?

1) Если ваша дата, скажем, является массивом года, месяца и дня, то вы можете использовать mktime (0, 0, 0, $ month, $ day + 15, $ year) или mktime (0, 0, 0 , $ месяц + 1, $ день, $ год). Обратите внимание, что mktime - это интеллектуальная функция, которая будет правильно обрабатывать значения за пределами границ, поэтому mktime (0, 0, 0, 13, 33, 2008) (т. Е. 13-й месяц, 33-й день 2008 года) вернет метку времени для февраля , 2, 2009.

2) Если ваша дата является временной отметкой, то вы просто добавляете, например, 15 * SECONDS_IN_A_DAY, а затем выводите ее с датой (/ * любой формат * /, $ postsDate). Если вам нужно добавить один месяц, 30 дней, конечно, не всегда будут работать правильно, поэтому вы можете сначала преобразовать метку времени в месяц, день и год (с функцией date ()), а затем использовать (1).

3) Если ваша дата является строкой, вы сначала анализируете ее, например, с помощью strtotime (), а затем делаете все, что захотите.

...