如何在symfony中格式化yaml中的时间
我正在使用 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 }
我将开始时间和结束时间设置为时间格式只是为了仅获取我的项目的时间值。我没有将其设置为日期类型,因为它会影响我的前端应用程序。例如,如果我输入5:00
,显示将是12:00 am
,这是因为我使用日期类型。
为了将这个 5:00:00 转换为 5:00 pm/am 显示,我将其设置为时间数据类型,并使用像我在 showSuccess 和 Indexsuccess 模板中使用的语法。
<?php echo date('g:i A', strtotime($reservation_application->getStartime()));
此代码会将 00:00:00 格式化为 12:00 am 或其他格式。但它在数据库中没有改变(00:00:00)。仅在展示中。
有没有办法在 yaml 文件中将 00:00:00 格式化为 12 小时格式?非常感谢
I'm using symfony 1.4 doctrine. I have an output in my database/browser that looks something like this:
Start time: 12:00:00 End time: 05:00:00
Now I want to change this format like this:
Start time: 12:00 pm End time: 5:00 pm
I tried to convert this in yaml in the backend application like this:
apps/backend/modules/reservation/config/generator.yaml
//some yaml code
fields:
startime: { date_format: h:i A }
endtime: { date_format: h:i A }
I use this format but it did'nt work, probably I set in the schema.yml their data types in "time" format:
reservation/config/doctrine/schema.yml
//some yaml code
columns:
startime: { type: time, notnull: true }
endtime: { type: time, notnull: true }
I set my startime and endtime to time format just to get the time value only for my project. I did'nt set it to date type because it will affect my front end application. For example if I input 5:00
the display will be 12:00 am
, its because I use date type.
To turn this 5:00:00 to 5:00 pm/am in display, I set it into time data type and I use this syntax like this which I used in showSuccess and Indexsuccess template.
<?php echo date('g:i A', strtotime($reservation_application->getStartime()));
this code will format 00:00:00 into 12:00 am or something. but it doesnt change (00:00:00) in the data base. ONLY in display.
Is there a way to format this 00:00:00 into 12 hr format in the yaml file? Many thanks
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
当您节省时间时,它始终会存储在没有任何文化信息的情况下。 (一旦您要创建一个多语言网站,您就会为此感到高兴!)。
也就是说,在视图中设置日期格式时最好使用 DateHelper。它有一个
format_date
函数。当您使用此函数时,请不要忘记在settings.yml
中设置default_culture
(或在sfUser
中设置正确的区域性) >)。例如
format_date($date, 't');
打印用户区域性中的当前时间。有关可以使用哪些模式的概述,请参阅此页面。
When you save a time, it's always stored without any culture information. (And as soon as you're going to create a multilingual website, you'll be glad of that!).
That said, it's best to use the DateHelper when formatting dates in the view. This has a
format_date
function. When you're using this function, don't forget to set thedefault_culture
in thesettings.yml
(or set the correct culture in thesfUser
).For example
format_date($date, 't');
prints the current time, in the users culture.For an overview of which patterns you can use, see this page.