热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Symfony中日期时间字段格式设置技巧

本文探讨了如何在Symfony框架中正确设置日期时间字段的格式,以满足特定的显示需求。

介绍:本文旨在帮助开发者解决在Symfony框架中遇到的日期时间字段格式化问题,提供实用的解决方案。


问题描述:在创建表单时,需要将datetime字段格式化为yyyy-mm-dd hh:mm格式。尝试使用如下代码:

$builder->add('beginDate', 'datetime', ['widget' => 'single_text', 'date_format' => 'yyyy-MM-dd HH:i']);

但实际效果未能达到预期。希望实现的格式为:

2014-08-25 22:37

是否有方法可以实现这一目标?

已经查阅了一些资料,但未找到适用于24小时制及分钟显示的例子。


解决方案一

尝试在日期时间字段定义中使用以下date_format格式:

'yyyy-MM-dd HH:mm'

而非当前使用的:

'yyyy-MM-dd HH:i'

建议仔细检查PHP日期格式选项与Symfony表单构建器期望的RFC格式之间的差异,确保正确使用。


解决方案二

使用支持格式选项的HTML5日期时间格式:

$builder->add('beginDate', 'datetime', ['widget' => 'single_text', 'format' => 'yyyy-MM-dd HH:mm']);

当使用format时,应将其与widget = single_text一起使用,而非date_format


解决方案三

另一种尝试方法为:

$builder->add('beginDate', 'date', ['widget' => 'single_text', 'format' => 'yyyy-MM-dd H:mm']);


解决方案四

请确认在使用Twig或PHP进行显示时,是否涉及到了parameters.ymlconfig.yml中的本地化设置,或者Twig模板中的时间显示方式。更多关于时间区的信息,可参考:Twig时间过滤器文档


解决方案五

尝试以下配置:

$builder->add('beginDate', 'datetime', ['widget' => 'single_text', 'format' => 'dd/MM/yyyy kk:mm']);

详细信息可参考:Symfony官方文档ICU项目日期时间格式语法


解决方案六

对于相同的问题,以下配置有效:

$builder->add('closingDate', DateTimeType::class, ['date_widget' => 'single_text', 'date_format' => 'dd.MM.yyyyTH:i', 'html5' => false]);


解决方案七

对于某些情况,以下方法也有效:

使用Symfony\Component\Form\Extension\Core\Type\DateType;

$builder->add('beginDate', DateType::class, ['widget' => 'single_text', 'format' => 'yyyy-MM-dd', 'data' => new DateTime()]);


推荐阅读
author-avatar
qa32qw51
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有