是什么导致PHP / Symfony2中的日期差异?

时间:2015-10-25 12:36:51

标签: php symfony datetime intl

我对datetime有一个非常奇怪的问题。存储在数据库中的日期时间在表单中显示为有效,但在正常打印时出错。

这是我的列数据:

delivery_date = datetime type
value = 2015-11-06 13:00:00 (Y-m-d H:i:s)

enter image description here

这是我的表单数据:

$builder->add('delivery_date', 'date', ['label' => 'Teslim', 'widget' => "single_text"]);

输出:

enter image description here

打印代码:

<tr>
    <td>Sipariş Tarihi</td>
    <td>{{ order.createdAt|date("d F Y, l, H:i")|format_date("dd MMMM y, EEEE, HH:mm") }}</td>
</tr>
<tr>
    <td>Teslim Tarihi</td>
    <td>{{ order.deliveryDate|date("d F Y, l")|format_date("dd MMMM y, EEEE") }}</td>
</tr>
<tr>
    <td>Son Güncelleme</td>
    <td>{{ order.updatedAt|date("d F Y, l, H:i")|format_date("dd MMMM y, EEEE, HH:mm") }}</td>
</tr>
<tr>
    <td>Son Hareket</td>
    <td>{{ order.movements.last.createdAt|date("d F Y, l, H:i")|format_date("dd MMMM y, EEEE, HH:mm") }}</td>
</tr>

输出: enter image description here

第二行名为“teslim tarihi”是错误的。在形式中它是真的,因为日是06,但是打印日是05.其他行具有相同的列类型“datetime”。但是现在没有问题。

顺便说一下;

  • 我已经启用了intl扩展程序
  • php版本是旧稳定5.5.30
  • 时区是欧洲/伊斯坦布尔。
  • 使用SonataIntlBundle进行Symfony。
  • Os:Centos,日期命令有效(现在输出: Sun Oct 25 15:35:52 EEST 2015 )。

导致这种差异的原因是什么?

1 个答案:

答案 0 :(得分:0)

链接这两个过滤器是无稽之谈。以一种方式格式化日期没有意义,只是为了之后直接将其转换为其他格式。如果它涉及打印月份名称等,您可以使用Intl Extension中的localizeddate过滤器。