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

发布于 2024-12-01 15:02:46 字数 1125 浏览 1 评论 0原文

我正在使用 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

峩卟喜欢 2024-12-08 15:02:46

当您节省时间时,它始终会存储在没有任何文化信息的情况下。 (一旦您要创建一个多语言网站,您就会为此感到高兴!)。

也就是说,在视图中设置日期格式时最好使用 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 the default_culture in the settings.yml (or set the correct culture in the sfUser).

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.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文