Zend Date дает мне нули, почему?
Больше проблем с датами.
В основном я пытаюсь заполнить таблицу некоторыми значениями даты и времени из Zend. Тип данных столбца, который я пытаюсь заполнить, - "datetime". Однако независимо от того, какую константу я пробую, столбец всегда заполняется нулями. я пробовал Zend_Date::ISO_8601
, Zend_Date::DATETIME
, Zend_Date::now()
но безрезультатно. Пожалуйста, помогите.
Вот код:
if(!$exists){
$date_time = Zend_Date::DATETIME;
/*
* Create the new site record
*/
$site_row = $site_table->createRow();
//if(isset($n_r['id'])) $row->id = $n_r['id'];
$site_row->name = $n_r['name'];
$site_row->active = 1;
$site_id = $site_table->total() + 1;
$address_id = $address_table->total() + 1;
$site_row->id = $site_id;
$site_row->address_id = $address_id;
/*
* Create the address record to go with it
*/
$address_row = $address_table->createRow();
$address_row->postcode = $n_r['postcode'];
$address_row->address_line1 = $n_r['name'];
$address_row->start_date = $date_time;
$address_row->id = $address_id;
$address_row->save();
$array[] = $site_row->toArray();
$site_row->save();
/*
* Create the new site2address record to go with it
*/
$site2address_row = $site2address_table->createRow();
$site2address_row->site_id = $site_id;
$site2address_row->address_id = $address_id;
$site2address_row->start_date = $date_time;
}else{
$array[] = $exists;
}
2 ответа
Решение
MySQL ожидает ввода для DATETIME
столбцы быть
YYYY-MM-DD HH:MM:SS
независимо от локали, которую вы используете. Я не вижу константу Zend для этого, возможно, вам придется отформатировать ее самостоятельно.
Вы можете использовать функцию MySQL как NOW() для более удобного пути. если вы находитесь на MySQL код ниже может работать для вас.
$address_row->start_date = new Zend_Db_Expr('NOW()');