[php] PHP에서 $ Date에 일 추가

양식에 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’형식으로 가져와 다른 쿼리에 사용할 수있는 올바른 방법은 무엇입니까?



답변

다음 과 같이 사용하기 days만하면됩니다 day.

<?php
$Date = "2010-09-17";
echo date('Y-m-d', strtotime($Date. ' + 1 days'));
echo date('Y-m-d', strtotime($Date. ' + 2 days'));
?>

그리고 올바르게 출력됩니다.

2010-09-18
2010-09-19


답변

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생성자 날짜에 추가 할 다른 기간을 구성하는 방법을 볼 수있는 매뉴얼 페이지를 (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"


답변

PHP 5.2부터는 DateTime 객체와 함께 modify를 사용할 수 있습니다.

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

$Date1 = '2010-09-17';
$date = new DateTime($Date1);
$date->modify('+1 day');
$Date2 = $date->format('Y-m-d');

월을 추가 할 때는주의하십시오 …


답변

다음은 날짜 수정을 보여주는 작은 스 니펫입니다.

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


답변

다음 형식을 사용할 수도 있습니다

strtotime("-3 days", time());
strtotime("+1 day", strtotime($date));

이 방법으로 변경 사항을 스택 할 수 있습니다.

strtotime("+1 day", strtotime("+1 year", strtotime($date)));

이 방법과 다른 답변의 방법의 차이점에 유의하십시오. 값을 연결하는 대신 +1 day<timestamp>의 두 번째 매개 변수로 타임 스탬프를 전달하면됩니다 strtotime.


답변

일 수에 변수 사용

$myDate = "2014-01-16";
$nDays = 16;
$newDate = strtotime($myDate . '+ '.$nDays.'days');
echo newDate('d/m/Y', $soma); //format new date 


답변

다음은 가장 간단한 쿼리 솔루션입니다.

$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