2014-10-07 2 views
1

이 문제는 일반적 일 수 있지만 내가 잘못한 것을 찾을 수없는 것 같습니다.비 객체에서 member 함수 형식() 호출 DateTime

나는 UTC 형식으로 생각하고 내가 AEST로 변환해야하는 데이터베이스의 날짜와 시간이 두 가지 있습니다.

$date = message['date']; //25/09/2014 
$time = message['time']; //9:00:00 

$combined_time = $date . " " . $time; 
$schedule_date = DateTime::createFromFormat("Y-m-d H:i:s",$combined_time ,new DateTimeZone("Australia/Melbourne")); 
return $schedule_date->format("jS-A-Y H:i:s T"); 

나는 Call to a member function format() on a non-object을 얻었습니다.

답변

3

당신은 ("d/m/Y h:i:s")를 사용한다 :

$schedule_date = DateTime::createFromFormat("d/m/Y h:i:s", $combined_time , new DateTimeZone("Australia/Melbourne")); 

날짜 - 시간이 25/09/2014 9:00:00이므로 주어진 형식이 잘못되었습니다. 체크 this example.

+1

예제 링크가 작동하지 않습니다. – Star

+0

Thanks @Star, 제거 :-) –

2

클래스 개체를 만들지 않으므로 클래스 개체를 만들거나 직접 사용해야합니다.

$schedule_date = new DateTime($date); 
return $schedule_date->format("jS-A-Y H:i:s T"); 

하거나 correct format in Datetime() 더 읽기 매뉴얼이

에 대한 @The 알파 답변을 참조 전달해야 - http://php.net/manual/en/datetime.createfromformat.php

+0

감사를 얻을 $ 날짜 -> 형식 ('Y')를 사용할 수 있습니다. 나는'DateTime :: createFromFormat ("Y-m-d H : i : s")'에서 잘못된 포맷을 한 것 같다. – blitzen12

+0

'DateTime :: createFromFormat' 작동,'new DateTime' 사용할 필요 없음 –

+0

[이 작업 예제 확인] (http://codepad.viper-7.com/YiIRo6). 'DateTime :: createFromFormat'는'DateTime' 객체를 반환합니다. –

0
// convert string to timestamp 
    $timeStamp = strtotime($combined_time); 
    // create DateTime object use timestamp 
    $date = new DateTime(); 
    $date->setTimestamp($timeStamp); 

그럼 당신은 지금 막 그것을 가지고 ... 올해

관련 문제