Как описать поле для хранения даты?
Первый вариант напрашивается такой.
Для ввода хочу использовать что-то типа или какой-нибудь каледнарь.
$form['bla-bla'] = array(
'#title' => t('Request date'),
'#type' => 'date',
'#description' => t('Set date of request'),
'#default_value' => array(
'month' => format_date(time(), 'custom', 'n'),
'day' => format_date(time(), 'custom', 'j'),
'year' => format_date(time(), 'custom', 'Y')
)
);
'#title' => t('Request date'),
'#type' => 'date',
'#description' => t('Set date of request'),
'#default_value' => array(
'month' => format_date(time(), 'custom', 'n'),
'day' => format_date(time(), 'custom', 'j'),
'year' => format_date(time(), 'custom', 'Y')
)
);
Как потом правильно запихать дату в поле datetime?
И вообще как правильно с датами работать, если мне нужно по ним выборку производить?
Комментарии
Так как в друпале дата всегда храниться unix-меткой, то я тоже предпочитаю хранить ее именно так, то есть целым числом, чтобы не нарушить общей конструкции и не путаться с тем, что данные везде в разном виде.
В ядре да, а вот в модулях чёрти как бывает, тот же модуль Date по разному хранит
Как Date бы не хранил, какая вам разница? С меткой все равно работать проще и быстрее (на мой взгляд), она замечательно сортируется, индексируется, если надо, и выводится в любом виде.
Дык, как правильнее?
1. Как поле описать в схеме?
2. Как запрашивать у пользователя
3. Как запихивать в базу то, что спросили у пользователя?
В схеме:
'type' => 'integer'
Как запрашивать: найдите какой-нибудь яваскриптовый виджет с календарем.
Общее для работы:
Я бы конечно описал своими словами, но боюсь, что это будем много, сумбурно и непонятно, поэтому:
http://php.net/manual/ru/function.time.php
http://php.net/manual/en/function.date.php
Я не спорю, сам храню в инте.
int
Любым удобным способом
db_query()
db_write_record()
Если поле в int'е как тогда сортировать при выборке из базы?
order by ПОЛЕ .
Время это количество секунд с 1970 года, следовательно завтра пройдет больше секунд, чем прошло сейчас... Еще вопросы?
http://drupal.org/node/292667
Пример:
<?php
$format = 'd-m-y';
$form['date_from'] = array(
'#title' => t('Date From'),
'#type' => 'date_popup',
'#date_format' => $format,
'#description' => t('Please select a date'),
);
?>