Я только что перенес веб-сайт на новый хост. Не уверен, какое программное обеспечение использовалось на предыдущем хосте, но предполагаю, что это был Apache с PHP. Сейчас я использую сервер 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, и даты обрабатываются по-другому?
$job->DateEnd
- это объект чего-то, а не строка. Проверьте, что такое$job->DateEnd
, например, с помощьюvar_dump($job->DateEnd)
. - person Marcel Balzer   schedule 08.01.2014