На главную
ПРАВИЛА FAQ Помощь Участники Календарь Избранное DigiMania RSS
msm.ru
! ПРАВИЛА РАЗДЕЛА
Прежде чем задать вопрос, зайдите в раздел FAQ, возможно там уже есть ответ на него.
Если вы хотите вставить код в сообщение, то пожалуйста выделяйте его тегом [code=dfp] ... [/сode].
Для этого используйте кнопку [code=dfp] в форме ответа или комбобокс, если нужно вставить код на языке, отличном от Delphi for PHP.
Модераторы: ViktorXP, vicis
  
> DateTimePicker ifFormat, форматирование даты
    поле в базе MySQL - DATETIME. Выставляю в инспекторе у элемента DateTimePicker свойство ifformat=%d-%m-%Y %H:%M. все равно при загрузке формы первый раз дата появляется в DateTimePicker в формате %Y-%m-%d %I:%M (так по умолчанию).Выбираю дату в календаре - показывает в нужном формате. При записи в базу - дает ошибку - те неправильно интерпретирует дату.Ставил форматирование перед записью данных в элемент
    ExpandedWrap disabled
       $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
    что делать? спасибо
    Сообщение отредактировано: Zajigaev -
      я так делал

      ExpandedWrap disabled
        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
      Сообщение отредактировано: vicis -
        все получилось
        преобразование даты при считывании из базы переложил на sql
        как в My Webpage
        спасибо
        Сообщение отредактировано: Zajigaev -
        1 пользователей читают эту тему (1 гостей и 0 скрытых пользователей)
        0 пользователей:


        Рейтинг@Mail.ru
        [ Script Execution time: 0,0728 ]   [ 14 queries used ]   [ Generated: 22.09.19, 02:23 GMT ]