У меня есть переменная, $effectiveDate
содержащая дату 2012-03-26 .
Я пытаюсь добавить три месяца к этой дате, но мне это не удалось.
Вот что я пробовал:
$effectiveDate = strtotime("+3 months", strtotime($effectiveDate));
и
$effectiveDate = strtotime(date("Y-m-d", strtotime($effectiveDate)) . "+3 months");
Что я делаю неправильно? Ни один из фрагментов кода не работал.
1340649000
ответ, который кажется правильным.$effectiveDate
храните то, что думаете? У меня работает .date('Y-m-d', 1340661600)
дает2012-06-26
правильный ответ.Ответы:
Измените его на это, чтобы получить ожидаемый формат:
$effectiveDate = date('Y-m-d', strtotime("+3 months", strtotime($effectiveDate)));
источник
"+ '$months' months"
не работает$offset = 5; echo date('Y-m-d', strtotime("+$offset months", strtotime('2000-01-01')));
ДемоЭто не совсем ответ на этот вопрос. Но я добавлю это, поскольку этот вопрос все еще доступен для поиска, как добавить / вычесть период из даты.
$date = new DateTime('now'); $date->modify('+3 month'); // or you can use '-90 day' for deduct $date = $date->format('Y-m-d h:i:s'); echo $date;
источник
Я предполагаю, что под «не сработало» вы имеете в виду, что он дает вам отметку времени вместо отформатированной даты, потому что вы делали это правильно:
$effectiveDate = strtotime("+3 months", strtotime($effectiveDate)); // returns timestamp echo date('Y-m-d',$effectiveDate); // formatted version
источник
Вам нужно преобразовать дату в читаемое значение. Вы можете использовать strftime () или date ().
Попробуй это:
$effectiveDate = strtotime("+3 months", strtotime($effectiveDate)); $effectiveDate = strftime ( '%Y-%m-%d' , $effectiveDate ); echo $effectiveDate;
Это должно сработать. Мне больше нравится использовать strftime, так как его можно использовать для локализации, возможно, вы захотите попробовать.
источник
Ответ Чупи можно сделать немного менее подробным, объединив аргумент для strtotime () следующим образом:
$effectiveDate = date('Y-m-d', strtotime($effectiveDate . "+3 months") );
(Это зависит от деталей волшебной реализации, но вы всегда можете взглянуть на них, если вы справедливо недоверчивы.)
источник
Следующее должно работать, попробуйте это:
$effectiveDate = strtotime("+1 months", strtotime(date("y-m-d"))); echo $time = date("y/m/d", $effectiveDate);
источник
Следующее должно работать
$d = strtotime("+1 months",strtotime("2015-05-25")); echo date("Y-m-d",$d); // This will print **2015-06-25**
источник
Добавьте n дней, месяцев и лет
$n = 2; for ($i = 0; $i <= $n; $i++){ $d = strtotime("$i days"); $x = strtotime("$i month"); $y = strtotime("$i year"); echo "Dates : ".$dates = date('d M Y', "+$d days"); echo "<br>"; echo "Months : ".$months = date('M Y', "+$x months"); echo '<br>'; echo "Years : ".$years = date('Y', "+$y years"); echo '<br>'; }
источник
Следующее должно работать, но вам может потребоваться изменить формат:
echo date('l F jS, Y (m-d-Y)', strtotime('+3 months', strtotime($DateToAdjust)));
источник