Php Symfony时间输入和时区
我有一个具有时间属性的实体。 在表单中,我有一个时间类型。 我在表单中写入的时间正是存储在DB ex.14:54中的时间。但是当我从数据库里拿回来的时候,我得到了13分54秒。 我想这是一个时区问题,但我不知道如何处理这个问题。 我尝试设置Php Symfony时间输入和时区,php,time,symfony,Php,Time,Symfony,我有一个具有时间属性的实体。 在表单中,我有一个时间类型。 我在表单中写入的时间正是存储在DB ex.14:54中的时间。但是当我从数据库里拿回来的时候,我得到了13分54秒。 我想这是一个时区问题,但我不知道如何处理这个问题。 我尝试设置model\u时区和view\u时区,但似乎没有任何改变。 我的问题是startTime的财产 编辑:这里有一些代码 实体 问题是你说的“时间”属性是什么意思。如果您将日期保存为我喜欢的日期,那么您将获得一个DateTime对象,您可以使用它 /** * @
model\u时区
和view\u时区
,但似乎没有任何改变。
我的问题是startTime的财产
编辑:这里有一些代码
实体
问题是你说的“时间”属性是什么意思。如果您将日期保存为我喜欢的日期,那么您将获得一个DateTime对象,您可以使用它
/**
* @ORM\Column(type="datetime", nullable=true)
*/
private $mydate;
要配置时区,您应该查看服务器上的时区和日期设置是否正确,您可以在php.ini
文件中设置时区
这里还有一篇文章可以帮助你解决一些问题
这是因为与
TimeType
字段相关的Datetime
对象是使用默认日期1970-01-01
构建的
将时间转换为用户时区时,Datetime
对象使用1970年1月1日的夏令时进行计算
目前,一些时区的应用程序中没有夏令时,无法返回预期时间。您能给我们展示一些代码,让我们知道我们在处理什么吗?我想知道的是,为什么它会存储我在表单中写入的准确时间值,当我从存储库中获取实体时,我会修改该值。如果您使用“datetime”而不是实体中的“datetimetz”?我得到了完全相同的结果。我写了12:14,它存储12:14,$startTime->format('H:I')写11:14然后在你的系统中的任何地方你的日期时间都不正确。试着在你的系统和你的php安装上聊天。做一个
phpinfo
并检查哪个时区被设置。php和mysql被设置为“Europe/Berlin”。
$builder
->add('startTime', 'time',['widget' => 'single_text','hours'=>$hours,"label"=>false,"attr"=>['class'=>'hidden']])
/**
* @ORM\Column(type="datetime", nullable=true)
*/
private $mydate;