微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

当我尝试格式化日期时,它会在我的树枝模板中呈现今天的日期,为什么会发生这种情况?

如何解决当我尝试格式化日期时,它会在我的树枝模板中呈现今天的日期,为什么会发生这种情况?

我正在使用带有 wordpress 的 twig 模板,我试图输出一个日期,但是当我尝试格式化日期时,它的格式正确但它呈现的是今天的日期,而不是我试图呈现的日期。

{% for item in program_schedule %}
  {{ item.training_date_current }} // renders correctly 05/Aug/2021
  {{ post.published_at|date("d/M/Y") }} // renders 07/Jul/2021 - should be same as above
{% endfor %}

这很奇怪,知道为什么会发生这种情况以及如何解决吗? 谢谢。

解决方法

因为在循环中,您将单数帖子设置为 item,但在 published_at 处应用 post,它在 Timber 中可以从全局上下文中提供(基本上它是当前单数页面)。您可以安装 Debug Timber Bar,它会帮助您找到上下文中的内容或检查 {{ dump(_context) }}。将循环更改为

{% for item in program_schedule %}
  {{ item.training_date_current }}
  {{ item.published_at|date("d/M/Y") }}
{% endfor %}
,

在 php 中,date 方法有 2 个参数,其中 1 个是可选的,如 manual 中所述。字符串格式是必需的,第二个参数是时间戳。如果未提供时间戳,则它采用当前时间戳并为您提供今天的日期 (07/Aug/2021)。可能是您希望 post.published_at|date("d/M/Y") 将published_at 作为第二个参数传递,但事实并非如此。

您可能希望将日期方法调用为 date("d/M/Y",$dt),其中 $dt 是时间戳。创建时间戳的一种方法是使用 mktime(hour,minute,second,month,day,year)

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。