2011-07-28 4 views
1

저는 mysql 및 PHP를 사용하고 있습니다. 현재 데이터베이스에 날짜와 시간이 있지만 SQL을 사용하는 날짜를 얻으면 계속 1970 -01-01 어떤 날짜에도 상관 없지만, 아직 운을 추가하려고하면! 아무도 나를 안내 할 수있다형식 날짜 및 날짜를 ​​더하거나 뺍니다 날짜는 MySQL을 사용하여 PHP를 사용하여 오는

$startDate = $result['startDate']; 
$date=date('Y-m-d',$startDate); 
echo $date; 

그것은 01-07-2011와 같아야한다. 하지만 그것을 dosn't strtotime()도 시도했다. 하지만 도움이되지 않습니다. 어느 누구도 나를 도와 줄 수 없다.

$date = strtotime(date("Y-m-d", strtotime($startDate)) . " +1 day"); 
echo $date; 

답 2011-07-02되어야하지만, 사전에 그 1970년 1월 2일

덕분만큼 $로서

+2

,'줄? – PtPazuzu

+1

당신은 [mysql을 사용하여] 일 (http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html#function_date-add)을 더하거나 뺄 수 있습니다. quicker – ianbarker

+0

'$ startDate'의 값이 유닉스 신기원이 아닌 것을 알고 있다면 도움이 될 것입니다. 실제로 MySQL에서 얻고 있다고 가정하는 것을 실제로 얻고 있습니까? – Ryan

답변

1

는 [ '의 startDate를'] 발생하는 날짜 유형 항목이며 당신이 5.0.2 이상 버전의 PHP에있어, 당신이 찾고 :

$startDate = $result['startDate']; 
$date=date('Y-m-d',strtotime($startDate. ' +1 day')); 
echo $date; 
+0

컬럼이'date' 타입이고 그러므로 어쨌든'Y-m-d' 포맷 인 경우'echo $ result [ 'startDate'];'를 사용하지 않으시겠습니까? – Arjan

+0

나는 그것을 시도했다, 그것은 dosnt 일한다! 1970-01-02는 ans입니다! –

+0

@Arjan, 그는 하루를 더하고 싶었습니다. –

1

startDatedatetime 유형, 당신은 PHP에 date 기능을 사용하려면, 당신이 뭔가에 쿼리를 변경해야

SELECT UNIX_TIMESTAMP(startDate) as startDate ..... 
2

의 MySQL은 'YYYY-MM-DD HH : MM : SS'로 그 날짜를 반환 기본적으로 문자열입니다. PHP에서이 문자열을 date()에 직접 전달하는 것은 틀 렸습니다. date()는 시간 소인을 요구합니다 (Jan 1/1970부터 초). 유효하지 않은 날짜를 넘기므로 1970 년 1 월의 타임 스탬프 0으로 기본값이 설정됩니다.

SELECT UNIX_TIMESTAMP(yourdatefield)을 사용하여 MySQL이 PHP 사용에 적합한 타임 스탬프를 반환하도록 할 수 있습니다. 그러나 MySQL은 쿼리 내에서 날짜 계산을 완벽하게 수행 할 수 있습니다.

+0

친절하게 나에게 잘못 갔다, 나를 정정해라. –

1

$result['startDate'] 경우 MySQL의 날짜 (또는 날짜 시간) 후 다음이 작동된다

`에코 $ 결과 [ '의 startDate는'] 무엇을
$startDate = $result['startDate']; 
$date=date('Y-m-d',strtotime('+1 day', $startDate)); 
echo $date; 
관련 문제