Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/url/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Datetime 仅以UTC格式存储Doctrine2日期时间_Datetime_Timezone_Doctrine Orm - Fatal编程技术网

Datetime 仅以UTC格式存储Doctrine2日期时间

Datetime 仅以UTC格式存储Doctrine2日期时间,datetime,timezone,doctrine-orm,Datetime,Timezone,Doctrine Orm,也有类似的问题,但我找不到任何与Doctrine2配置相关的问题,所以这里是 我已经阅读了描述Doctrine2时区的这一页,我只想澄清一下,因为不清楚如何实际使用它: 我想用UTC存储日期时间,这样每个用户都可以根据他们的位置拥有一个关联的时区,但数据是以常规方式存储的 基本上,数据是商店的营业时间(例如上午9点开门,下午6点关门)。商店将跟踪其时区,因此当商店的人员设置“开放”时间时,他们将处理商店的时区,时间将转换为UTC并存储在数据库中。接下来,当不同的用户查看商店的营业时间时,他们将在

也有类似的问题,但我找不到任何与Doctrine2配置相关的问题,所以这里是

我已经阅读了描述Doctrine2时区的这一页,我只想澄清一下,因为不清楚如何实际使用它:

我想用UTC存储日期时间,这样每个用户都可以根据他们的位置拥有一个关联的时区,但数据是以常规方式存储的

基本上,数据是商店的营业时间(例如上午9点开门,下午6点关门)。商店将跟踪其时区,因此当商店的人员设置“开放”时间时,他们将处理商店的时区,时间将转换为UTC并存储在数据库中。接下来,当不同的用户查看商店的营业时间时,他们将在自己的时区或商店时区中看到营业时间。这不重要,因为我有UTC的时间,所以我可以将它们转换为任何时区

因此,条令文件显示了以下示例:

class UTCDateTimeType extends DateTimeType
{
// ...
}

但它没有说明如何使用它。我是否必须将列声明为“UTCDateTime”而不是“DateTime”?该类需要驻留在何处,以便条令知道该类型存在?

您需要在条令引导中注册该类型,并在映射中使用UTCDateTime。下面是一篇解释如何做的博文:

我刚刚发现了一篇关于时间标记行为的博文的这一部分,这似乎是一个更简单的解决方案:

config.yml

doctrine:
    dbal:
        types: 
            datetime: Acme\DoctrineExtensions\DBAL\Types\UTCDateTimeType