Как отформатировать время в yaml в symfony - PullRequest
2 голосов
/ 24 августа 2011

Я использую учение Symfony 1.4. У меня есть вывод в моей базе данных / браузере, который выглядит примерно так:

Время начала: 12:00:00 Время окончания: 05: 00: 00

Теперь я хочу изменить этот формат следующим образом:

Время начала: 12:00 вечера. Время окончания: 17:00

Я попытался преобразовать это в yaml в бэкэнд-приложении следующим образом:

apps/backend/modules/reservation/config/generator.yaml

//some yaml code
fields:
  startime: { date_format: h:i A }
  endtime:  { date_format: h:i A }

Я использую этот формат, но он не работает, возможно, я установил в schema.yml их типы данных в формате "time":

reservation/config/doctrine/schema.yml

//some yaml code
   columns:
     startime: { type: time, notnull: true }
     endtime:  { type: time, notnull: true }

Я устанавливаю формат времени начала и времени для времени, чтобы получить значение времени только для моего проекта. Я не установил тип даты, потому что это повлияет на мое приложение. Например, если я введу 5:00, на дисплее будет 12:00 am, потому что я использую тип даты.

Чтобы отобразить это с 5:00:00 до 17:00 / утра, я установил для него тип данных времени и использую такой синтаксис, который использовался в шаблонах showSuccess и Indexsuccess.

<?php echo date('g:i A', strtotime($reservation_application->getStartime()));

этот код будет форматироваться с 00:00:00 до 12:00 или около того. но это не меняет (00:00:00) в базе данных. ТОЛЬКО на дисплее.

Есть ли способ отформатировать это 00:00:00 в 12-часовой формат в файле yaml? Большое спасибо

1 Ответ

0 голосов
/ 24 августа 2011

Когда вы сохраняете время, оно всегда сохраняется без какой-либо информации о культуре.(И как только вы создадите многоязычный веб-сайт, вы будете этому рады!).

При этом лучше всего использовать DateHelper при форматировании дат ввид.Это имеет функцию format_date.Когда вы используете эту функцию, не забудьте установить default_culture в settings.yml (или установить правильную культуру в sfUser).

Например, format_date($date, 't'); печатает текущее время в пользовательской культуре.

Обзор доступных шаблонов см. На этой странице .

...