Есть у меня поле в Postgres базе
request_date | TIMESTAMP WITHOUT TIME zone | NOT NULL DEFAULT now()
В модуле пишу так и ставлю формат во вьюхе d-m-Y
$data['journal_of_requests']['request_date'] = array(
'title' => t('Дата заявки'),
'help' => t('Дата подачи заявки'),
'field' => array(
'handler' => 'views_handler_field_date',
'click sortable' => TRUE,
),
'sort' => array(
'handler' => 'views_handler_sort_date',
),
'filter' => array(
'handler' => 'views_handler_filter_date',
),
);
'title' => t('Дата заявки'),
'help' => t('Дата подачи заявки'),
'field' => array(
'handler' => 'views_handler_field_date',
'click sortable' => TRUE,
),
'sort' => array(
'handler' => 'views_handler_sort_date',
),
'filter' => array(
'handler' => 'views_handler_filter_date',
),
);
Выводит 01-01-1970 вместо нормальной даты.
Вот так достаёт правильно
SELECT to_char(j.request_date, 'DD-MM-YYYY') AS request_date FROM journal_of_requests AS j
Как объяснить views'у что он не прав?
Комментарии
стандартный только для дат в UNIX_TIMESTAMP
вам надо свой писать
<?php
class mymodule_views_handler_field_date extends views_handler_field {
function query() {
$this->ensure_my_table();
$this->field_alias = $this->query->add_field(NULL, "to_char($this->table_alias.$this->real_field, 'DD-MM-YYYY')", $this->table_alias .'_'. $this->real_field);
}
}