Добавление дней к $ Date в PHP


Answers

Если вы используете PHP 5.3, вы можете использовать объект DateTime и его метод add :

$Date1 = '2010-09-17';
$date = new DateTime($Date1);
$date->add(new DateInterval('P1D')); // P1D means a period of 1 day
$Date2 = $date->format('Y-m-d');

Взгляните на DateInterval руководства конструктора DateInterval чтобы узнать, как создавать другие периоды для добавления к вашей дате (2 дня будут 'P2D' , 3 - 'P3D' и т. Д.).

Без PHP 5.3 вы должны иметь возможность использовать strtotime так, как вы это делали (я тестировал его, и он работает как в версиях 5.1.6, так и в 5.2.10):

$Date1 = '2010-09-17';
$Date2 = date('Y-m-d', strtotime($Date1 . " + 1 day"));
// var_dump($Date2) returns "2010-09-18"
Question

У меня есть дата, возвращаемая как часть запроса mySQL в форме 2010-09-17

Я хотел бы установить переменные $ Date2 в $ Date5 следующим образом:

$Date2 = $Date + 1

$Date3 = $Date + 2

и т.д..

так что он возвращает 2010-09-18 , 2010-09-19 т. д. ...

я пытался

date('Y-m-d', strtotime($Date. ' + 1 day'))

но это дает мне дату ДО $Date .

Каков правильный способ получить мои Даты в форме формы «Ymd», чтобы они могли использоваться в другом запросе?




Здесь есть простой способ решить эту проблему.

<?php
   $date = "2015-11-17";
   echo date('Y-m-d', strtotime($date. ' + 5 days'));
?>

Выход будет:

2015-11-22

Решение найдено здесь - Как добавить дни в PHP




Вот небольшой фрагмент, демонстрирующий модификацию даты:

$date = date("Y-m-d");
//increment 2 days
$mod_date = strtotime($date."+ 2 days");
echo date("Y-m-d",$mod_date) . "\n";

//decrement 2 days
$mod_date = strtotime($date."- 2 days");
echo date("Y-m-d",$mod_date) . "\n";

//increment 1 month
$mod_date = strtotime($date."+ 1 months");
echo date("Y-m-d",$mod_date) . "\n";

//increment 1 year
$mod_date = strtotime($date."+ 1 years");
echo date("Y-m-d",$mod_date) . "\n";



Вот простейшее решение вашего запроса

$date=date_create("2013-03-15");\\or your date string
date_add($date,date_interval_create_from_date_string("40 days"));\\add number of days 
echo date_format($date,"Y-m-d");\\set date format of the result