2009-05-06 6 views
23

В моем PHP-коде у меня есть дата в моей переменной «$ auctionDate».
Теперь я хочу получить дату после 7 дней, 15 дней, месяца и 2 месяца.Как я могу получить дату через 15 дней/1 месяц на PHP?

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

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

+2

Термин вы хотите Google для является "дата арифметика". –

ответ

34

Используйте StrToTime.

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

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

http://uk.php.net/strtotime

+0

Не работает этот код ... – Tanmoy

17

попробовать этот

$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"); 
2

Что входной формат в любом случае?

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

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

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

13

Начиная с 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

+0

Большое спасибо. Он разрешает мою проблему за считанные секунды. Еще раз спасибо –

+0

Я всегда предпочитаю это решение по опции 'strtotime'. – Peon

3

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

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

echo $date = date("Y-m-d", strtotime($date ." +1 day")); 
9
$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