带有strtotime和date的语法的警告/错误

时间:2014-01-08 08:32:16

标签: php codeigniter strtotime

我刚刚将网站迁移到新主机。不确定在以前的主机上使用了什么软件,但假设它是使用PHP的Apache。我现在正在使用WAMP服务器(Apache 2.4.4和PHP 5.4.16)。该网站建立在Codeigniter框架之上。

我遇到两个错误:

    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))); ?>

这不是唯一给出此错误的行,37个文件中共有151个点击仅用于“strtotime”。没有PHP编码器,但这似乎是我花了3天时间让这个网站恢复后的最后一次挑战!

如果需要任何其他代码,请告诉我,并尝试找到它。我只是觉得它不适合在每一行中添加“strtotime”和“date”的搜索结果。

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

编辑(3小时后,更多信息): 我在另一行之后放入了var_dump函数,它显示了这个:

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

我想我找到了$ job设置的代码。

    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 个答案:

答案 0 :(得分:0)

我相信分配给$ job-&gt; DateEnd的数据是一个对象。创建一个函数来从中检索所需的数据并将其作为字符串返回(这意味着在很多地方更改大量代码)或更改$ job-&gt; DateEnd的填充方式(这意味着更改单个键)在你的代码中。)

我会选择后者并在其源头解决问题!

祝你好运!