2012-03-29 2 views
5

1and1의 공유 호스팅 패키지에는 PHP 5.2.17 만 포함되어 있으므로 DateTime 객체를 사용할 수 없습니다. 매우 짜증나!PHP 5.2를 사용하여 날짜에 X 주 추가하기

나는 현재이 코드를

$eventDate = new DateTime('2013-03-16'); // START DATE 
$finishDate = $eventDate->add(new DateInterval('P'.$profile["Weeks"].'W')); 

을 가지고 있지만 분명히 작동하지 않습니다.

PHP5.2에서 작동하는 코드와 어떻게 똑같이 할 수 있습니까? (코드는 특정 날짜에 주의 X 번호를 추가합니다.)

답변

11

그냥 strtotime()와 타임 스탬프를 얻을 수 주일의 x의 * 초를 추가

$newTime = strtotime('2013-03-16') + ($numberOfWeeks * 60 * 60 * 24 * 7); // 604800 seconds 

또는 무엇을 그냥 발견했습니다

$newTime = strtotime('+'.$numberOfWeeks.' weeks', strtotime('2013-03-16')); 

은 또한 당신은 DateTime 클래스를 이용할 수있다. (strtotime에서처럼) 날짜를 변경하는 방법 modify를 사용

$d = new DateTime('2013-03-16'); 
$d->modify('+'.$numberOfWeeks.' weeks'); 
+1

'strtotime()'이 (가)있는 것보다 많은 문제를 야기합니다. 마침표를 계산할 때 이상한 버그를 피하기 위해'DateTime' 클래스 함수를 사용하면 초를 놓치지 않을 것입니다. –

+0

@Paul PHP 5.2에서 누락 된'DateInterval'에 대해 알고 계십니까? 물론 항상 다른 대답이 있습니다. –

+0

그리고 _PHP 5.2.0_의 [DateTime :: modify()'] (http://www.php.net/manual/en/datetime.modify.php)는 어떨까요? 또한 양수 및 음수 값과 함께 작동합니다. 며칠 전 나는 내 제품에 버그를 수정했습니다. 나는 타임 스탬프의 차이로 간격을 계산하고 2 (10 월 -11) 개월의 여백에 2 주를 잃어 가고 있었다. 'DateTime' 구현으로 수정되었습니다. –

3

당신은 PHP 5.2에서 DateTime 개체를 사용할 수 있습니다, 그것은 단지 는 PHP 5.3에서 추가되었다 메소드를 추가합니다. PHP 5.2에서 the modify method을 사용할 수 있습니다.

$finishDate = $eventDate->modify('+'.$profile["Weeks"].' weeks'); 

작업을 수행하는 개체가 수정된다는 점에 유의하십시오. 따라서 $ eventDate도 변경됩니다.

관련 문제