2016-08-09 4 views
1

PHP에 2 개의 변수가 있습니다. 하나는 오늘 날짜를 받고 그것에 1 개월을 더하고 있습니다. 그건 잘 작동합니다. 다른 하나는 그 날짜를 가져다가 6 일을 추가해야합니다. 웬일인지 그 일부는 일하기를 거부한다. 나는 그것을 잘못 포맷하고 있는가? 나는 항상 내 데이터베이스에서 01-06-1970을 얻는다. 여기 일에 PHP 변수 추가

$latedate = date('Y-m-d', strtotime('+6 days',$renewdate)); 

답변

5

(작동하지 않습니다) 오늘 날짜를 가져 와서 여기

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

에 $ renewdate 6 일 추가 변수 1 개월 (잘 작동) 추가 변수입니다 strtotime의 두 번째 인수는 유닉스 타임 스탬프입니다. 현재 $renewdate은 문자열입니다. 그래서 :

$latedate = date('Y-m-d', strtotime('+6 days', strtotime($renewdate))); 
+0

내 코드를 기반으로 작동합니다. 감사! –

3

의 PHP 5.2.0 왜 당신은 여전히 ​​기존 기능에 숨어있다, DateTime을 가져? OOP 방식이 더 좋습니다!

$dtCreate = DateTime::createFromFormat('Y-m-d H:i:s', '2016-08-02 16:16:02'); 
$dtCreate->add(new DateInterval('P6D')); 

이, 당신의 DateTime 객체에 6 days을 추가합니다 자세한 내용은 DateInterval를 참조하십시오. 당신이 간격을 추가 한 후

, 당신은 그러나 당신이 원하는 개체를 format 수 있습니다 : 당신이 볼 수있는이, 2016-08-08 16:16:02를 반환합니다

$dtCreate->format('Y-m-d H:i:s'); 

, 그것은 6 일 후입니다.

+0

이것은 좋은 해결책 인 것처럼 보이지만 createFromFormat 및 P6D 함수가하는 일을 이해하지 못합니다. 당신은 그것을 무너 뜨릴 수 있습니까? 이 방법을 더 잘 이해하고 싶습니다. –

+0

@SpyderTech 나는 공식 PHP 매뉴얼에 대한 링크를 제공했다. 거기에는 완벽하게 설명되어있다. –