Datetime 仅以UTC格式存储Doctrine2日期时间
也有类似的问题,但我找不到任何与Doctrine2配置相关的问题,所以这里是 我已经阅读了描述Doctrine2时区的这一页,我只想澄清一下,因为不清楚如何实际使用它: 我想用UTC存储日期时间,这样每个用户都可以根据他们的位置拥有一个关联的时区,但数据是以常规方式存储的 基本上,数据是商店的营业时间(例如上午9点开门,下午6点关门)。商店将跟踪其时区,因此当商店的人员设置“开放”时间时,他们将处理商店的时区,时间将转换为UTC并存储在数据库中。接下来,当不同的用户查看商店的营业时间时,他们将在自己的时区或商店时区中看到营业时间。这不重要,因为我有UTC的时间,所以我可以将它们转换为任何时区 因此,条令文件显示了以下示例:Datetime 仅以UTC格式存储Doctrine2日期时间,datetime,timezone,doctrine-orm,Datetime,Timezone,Doctrine Orm,也有类似的问题,但我找不到任何与Doctrine2配置相关的问题,所以这里是 我已经阅读了描述Doctrine2时区的这一页,我只想澄清一下,因为不清楚如何实际使用它: 我想用UTC存储日期时间,这样每个用户都可以根据他们的位置拥有一个关联的时区,但数据是以常规方式存储的 基本上,数据是商店的营业时间(例如上午9点开门,下午6点关门)。商店将跟踪其时区,因此当商店的人员设置“开放”时间时,他们将处理商店的时区,时间将转换为UTC并存储在数据库中。接下来,当不同的用户查看商店的营业时间时,他们将在
class UTCDateTimeType extends DateTimeType
{
// ...
}
但它没有说明如何使用它。我是否必须将列声明为“UTCDateTime”而不是“DateTime”?该类需要驻留在何处,以便条令知道该类型存在?您需要在条令引导中注册该类型,并在映射中使用UTCDateTime。下面是一篇解释如何做的博文:我刚刚发现了一篇关于时间标记行为的博文的这一部分,这似乎是一个更简单的解决方案: config.yml
doctrine:
dbal:
types:
datetime: Acme\DoctrineExtensions\DBAL\Types\UTCDateTimeType