2014-01-08 5 views
0

방금 ​​웹 사이트를 새 호스트로 마이그레이션했습니다. 이전 호스트에서 어떤 소프트웨어가 사용되었는지는 모르지만 PHP가있는 Apache라고 가정합니다. 현재 WAMP 서버 (Apache 2.4.4 및 PHP 5.4.16)를 사용하고 있습니다. 이 사이트는 Codeigniter 프레임 워크를 기반으로 구축되었습니다.strtotime 및 날짜가있는 구문에 대한 경고/오류

Message: strtotime() expects parameter 1 to be string, object given 

    Message: date() expects parameter 2 to be long, string given 

그들은 그 때문에이 라인의보고 :

<?=date("d.m - H:i", utf8_encode(strtotime($job->DateEnd))); ?> 

이이 오류를주는 유일한 라인 아니다, 151 안타의 총이

나는 두 가지 오류를 얻고있다 "strtotime"을위한 37 개의 파일. PHP 코더는 없지만,이 사이트를 3 일간 사용하면 마지막으로 문제가되는 것 같습니다!

다른 코드가 필요하면 알려주고 알려주십시오. 나는 방금 "strtotime"과 "date"라는 검색 결과를 가진 모든 라인을 여기에 넣을 수 있다고 생각하지 않았습니다.

///////////////////////////////////////////////////////////////////////////// /////////////////////////

EDIT (3 시간 후, more info) : I 바로 다른 라인 후에 위해서 var_dump 함수에 넣어, 그리고이 나타났다 :

object(DateTime)#23 (3) { ["date"]=> string(19) "2014-01-08 23:59:00"["timezone_type"]=> int(3) ["timezone"]=> string(3) "UTC" } 

을 나는 $ 작업이 설정됩니다 코드를 발견 한 것 같아요.

function job_info() { 

    $project = ""; 
    $job_arranger = ""; 
    $project_arranger = ""; 
    $customer = ""; 
    $contact = ""; 
    $delivery_address = ""; 
    $human_resources = ""; 
    $vehicle_resources = ""; 

    $job = $this->job->get_job_data($this->uri->segment(3)); 
    if($job->IdUser_Arranger){ 
     $job_arranger = $this->address->get_user_data($job->IdUser_Arranger); 
    } 

    if($job->IdProject){ 
     $project = $this->job->get_project_data($job->IdProject); 
    } 
    if(is_object($project)) { 
     if($project->IdUser_Arranger) { 
      $project_arranger = $this->address->get_user_data($project->IdUser_Arranger);   
     } 
     if($project->IdAddress_Customer) { 
      $customer = $this->address->get_address_data($project->IdAddress_Customer);   
     } 
     if($project->IdContact_Customer) { 
      $contact = $this->address->get_contact_data($project->IdContact_Customer); 
     } 
    } 
    if($job->IdAddress_Delivery){ 
     $delivery_address = $this->address->get_address_data($job->IdAddress_Delivery); 
    } 
    $human_resources = $this->job->get_job_human_resources($this->uri->segment(3)); 
    $vehicle_resources = $this->job->get_job_vehicle_resources($this->uri->segment(3)); 

    $data['job'] = $job; 
    $data['project'] = $project; 
    $data['job_arranger'] = $job_arranger; 
    $data['project_arranger'] = $project_arranger; 
    $data['customer'] = $customer; 
    $data['contact'] = $contact; 
    $data['delivery_address'] = $delivery_address; 
    $data['human_resources'] = $human_resources; 
    $data['vehicle_resources'] = $vehicle_resources; 
    $this->load->view('jobs/job_info', $data); 



     } 
    } 

나는 PHP에서 총 초보자이기 때문에 어디에서 $ job이 설정되는지 찾는 것조차 어렵습니다.

새 SQL Datbase Server로 변경하고 날짜가 다르게 처리 되었기 때문에 오류가 발생했다고 생각합니까?

+1

오류가 분명하지 않습니까? – naththedeveloper

+0

$ job-> DateEnd는 문자열입니까? – Goikiu

+1

메시지가 깨끗합니다.'$ job-> DateEnd'는 문자열이 아닌 무언가의 객체입니다. '$ job-> DateEnd'가'var_dump ($ job-> DateEnd)'와 같이 어떤 것인지 확인하십시오. –

답변

0

$ job-> DateEnd에 지정된 데이터가 개체라고 생각합니다. 필요한 데이터를 검색하여 문자열로 반환하는 함수를 만들거나 (이는 많은 장소에서 많은 코드를 변경하는 것을 의미) 또는 $ job-> DateEnd가 채워지는 방식을 변경합니다 (이는 단일 키 조각을 변경하는 것을 의미합니다) 귀하의 코드에서).

나는 후자를 선택하고 문제의 원인을 해결할 것입니다.

행운을 빈다.