我在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会带来与时区相关的所有数据?为什么我应该将这些“时间”字段映射为字符串才能获得时间?
有没有办法将列映射为“时间”并得到我想要的相同结果(关于时间的简单信息)?
提前致谢!