Добрый день. У меня вот тут некий казус происходит с вводом даты в БД. Есть компонент, в котором есть поле "дата рождения". Запись происходит в поле по формату "%d-%m-%Y" Код (PHP): <? echo JHTML::_('calendar', $this->hello->DATAROST, 'DATAROST', 'DATAROST', '%d-%m-%Y', array('class'=>'inputbox', 'size'=>'8', 'maxlength'=>'19')); ?> Удобно это тем, что пользователи привыкли забивать дату в таком формате + дата рождения в паспорте так записывается. В БД есть поле: Код (PHP): REGDATA date 0000-00-00 Вывод инфы в поле с помощью календарика срабатывает на ура, но вот при записи в БД дата теряется, т.к. MySQL не понимает этот формат. Не спасает Код (PHP): $data['REGDATA'] = JHTML::_('date', $data['REGDATA'], JText::_('%Y-%M-%D')); т.к. он только с маской "0000-00-00" работает. Помогите плиз...
Попробуйте применить функции date() и strtotime(). Код (CODE): <? echo JHTML::_('calendar', $this->hello->DATAROST, 'DATAROST', 'DATAROST', '%Y-%M-%D', array('class'=>'inputbox', 'size'=>'8', 'maxlength'=>'19')); ?> Потом, когда вытягиваете из БД, то Код (CODE): $myDate = strtotime($dateDb); // $dateDb - переменная, которая содержит дату из БД $newDate = ('d.m.Y', $myDate); // Преобразование даты в формат d.m.Y
С выводом из самой БД у меня все хорошо... это я сделал. А вот как сделать обратно ??? У меня есть поле, в котором записывается дата в формате "03-04-2000" - как такую дату записать в базу, если в самой базе можно записывать "2000-04-03" ? ЗЫ: из "2000-04-03" в "03-04-2000" я могу сделать, а обратно не получается.
Измените вот это %Y-%M-%D Код (CODE): <? echo JHTML::_('calendar', $this->hello->DATAROST, 'DATAROST', 'DATAROST', '%Y-%M-%D', array('class'=>'inputbox', 'size'=>'8', 'maxlength'=>'19')); ?>
В таком случае надо будет в самом поле забивать дату, если делать все руками, тоже в таком формате: "%Y-%M-%D" А это не привычно и не совсем удобно =((( Вот почему скрипт не срабатывает ??? Код (PHP): <? $today = '03-04-2000'; $tomorrow = strtotime(0, strtotime($today)); echo $today ." - ". date('Y-m-d', $tomorrow); ?> Результат:
Код (CODE): <? $today = '03-04-2000'; $tomorrow = strtotime($today); echo $today ." - ". date('Y-m-d', $tomorrow); ?>
Пасибки за помощь - все работает. У меня просто сейчас установлен PHP4 (по случайности установил - из старых дистибах) - попробовал в PHP5 - сработало =)