Версия для печати
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум на Исходниках.RU > Delphi for PHP > DateTimePicker ifFormat


Автор: Zajigaev 15.03.10, 13:17
поле в базе MySQL - DATETIME. Выставляю в инспекторе у элемента DateTimePicker свойство ifformat=%d-%m-%Y %H:%M. все равно при загрузке формы первый раз дата появляется в DateTimePicker в формате %Y-%m-%d %I:%M (так по умолчанию).Выбираю дату в календаре - показывает в нужном формате. При записи в базу - дает ошибку - те неправильно интерпретирует дату.Ставил форматирование перед записью данных в элемент
<{CODE_COLLAPSE_OFF}><{CODE_WRAP_OFF}>
     $this->DateT_end->setIfFormat('%d-%m-%Y %H:%M');
               $this->DateT_end->Text=$row['data_end'];

не помогает
поменял формат в comctrls.ini.php и у календаря и в DateTimePicker На %d-%m-%Y %H:%M - не помогает
база дает ошибку Incorrect datetime value: '23-08-2030 16:06' for column 'data_end' at row 1
(в формате по умолчанию все работает)

то же наблюдается и в DBGrid (отображает дату в формате %Y-%m-%d %H:%M
что делать? спасибо

Автор: vicis 15.03.10, 14:20
я так делал

<{CODE_COLLAPSE_OFF}><{CODE_WRAP_OFF}>
    function DateRusToDateSQL($DateText)
    /* преобразуем дату из формата d-m-Y в формат для sql Y-m-d */
    {
                  if ($DateText!=null)
                    {
                    return strftime("%Y-%m-%d",strtotime($DateText));
                    }
                    else
                    {
                    return '';
                    }
    }
     
     
    function DateSQLToDateRus($DateText)
    /* преобразуем дату из формата  для sql Y-m-d в формат   d-m-Y*/
    {
                  if ($DateText!=null)
                    {
                    return strftime("%d.%m.%Y",strtotime($DateText));
                    }
                    else
                    {
                    return '';
                    }
    }
     
     
    вариант использования при записи в базу
                    
    function SaveOrder()
    {
      $this->tbstuff1->ank_date=DateRusToDeteSQL($this->DTP_DateAnketa->Text);
      $this->tbstuff1->Post();
    }
     
     
    при отображении из базы
     
    function actExecute($sender, $params)
    {
      global $DefaultCurrencyID,$index;
     
      $edit_id=$this->input->id;
      if ($params['action']=='append')
        {
          ....
        }
     
     
      if ($params['action']=='sel')
        {
          ...
        }
      if ($params['action']=='selok')
        {
          ...
        }
      if ($params['action']=='delete')
        {
          ....
        }
     
     
      $this->DTP_DateAnketa->Text=DateSQLToDateRus($this->tbstuff1->ank_date);
     
    }


Цитата Zajigaev @
то же наблюдается и в DBGrid (отображает дату в формате %Y-%m-%d %H:%M

см функцию mysql DATE_FORMAT

возможно что ещё так можно попробовать
%d.%m.%Y

Автор: Zajigaev 16.03.10, 08:41
все получилось
преобразование даты при считывании из базы переложил на sql
как в My Webpage
спасибо

Powered by Invision Power Board (https://www.invisionboard.com)
© Invision Power Services (https://www.invisionpower.com)