Doctrine 2和PostgreSQL:如何只从“没有时区的时间”属性中获取时间

时间:2014-04-10 18:19:34

标签: php postgresql orm doctrine-orm doctrine

我在PostgreSQL上有下表:

CREATE TABLE horary
(
  id bigint NOT NULL DEFAULT nextval('seq_office_horary'::regclass),
  day character(3),
  start time without time zone,
  end time without time zone,
  CONSTRAINT pk_horary PRIMARY KEY (id )
)
WITH (
  OIDS=FALSE
);

我的一段PHP代码:

/**
 * @Column(type="time", name="start")
 */
protected $start;

/**
 * @Column(type="time", name="end")
 */
protected $end;

当系统返回 json_encode(horary)时,我得到以下结果:

{
    "start": {
       "date": "2014-04-10 08:00:00",
       "timezone_type": 3,
       "timezone": "Europe/Berlin"
    },
    "end": {
        "date": "2014-04-10 12:00:00",
        "timezone_type": 3,
        "timezone": "Europe/Berlin"
    }
}

如果我将PHP映射中的列类型从时间更改为字符串,我正是我需要的

{
    "start": "08:00:00",
    "end": "12:00:00"
}

如果PostgreSQL中的数据类型是“没有时区的时间”,为什么Doctrine会带来与时区相关的所有数据?为什么我应该将这些“时间”字段映射为字符串才能获得时间?

有没有办法将列映射为“时间”并得到我想要的相同结果(关于时间的简单信息)?

提前致谢!

0 个答案:

没有答案