我刚刚将网站迁移到新主机。不确定在以前的主机上使用了什么软件,但假设它是使用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,日期处理方式不同?
答案 0 :(得分:0)
我相信分配给$ job-&gt; DateEnd的数据是一个对象。创建一个函数来从中检索所需的数据并将其作为字符串返回(这意味着在很多地方更改大量代码)或更改$ job-&gt; DateEnd的填充方式(这意味着更改单个键)在你的代码中。)
我会选择后者并在其源头解决问题!
祝你好运!