如何在symfony中以yaml格式化时间

时间:2011-08-24 06:33:39

标签: symfony-1.4 yaml php

我正在使用symfony 1.4学说。我的数据库/浏览器中有一个输出,如下所示:

  

开始时间:12:00:00结束时间:05:00:00

现在我想改变这样的格式:

  

开始时间:中午12:00结束时间:下午5: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中设置了“时间”格式的数据类型:

reservation/config/doctrine/schema.yml

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

我将startime和endtime设置为时间格式只是为了获取我的项目的时间值。我没有把它设置为日期类型,因为它会影响我的前端应用程序。例如,如果我输入5:00,则显示将为12:00 am,因为我使用日期类型。

要在显示中将此时间从5:00:00变为下午5:00,我将其设置为时间数据类型,并使用我在showSuccess和Indexsuccess模板中使用的语法。

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

此代码将00:00:00格式化为凌晨12:00或其他东西。但它在数据库中没有变化(00:00:00)。仅在展示中。

有没有办法在yaml文件中将此00:00:00格式化为12小时格式?非常感谢

1 个答案:

答案 0 :(得分:0)

当您节省时间时,它始终存储时没有任何文化信息。 (一旦你要创建一个多语言网站,你会很高兴的!)。

也就是说,在视图中格式化日期时最好使用DateHelper。这具有format_date功能。当您使用此功能时,请不要忘记在default_culture中设置settings.yml(或在sfUser中设置正确的文化)。

例如format_date($date, 't');在用户文化中打印当前时间。

有关可以使用的模式的概述,请参阅this page