Php 信条2和PostgreSQL:如何只从一个;“没有时区的时间”;属性
关于PostgreSQL,我有下表:Php 信条2和PostgreSQL:如何只从一个;“没有时区的时间”;属性,php,postgresql,orm,doctrine-orm,doctrine,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=F
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\u encode(horry)时,我得到以下结果:
{
"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映射中的列类型从time更改为string,我将得到所需的:
{
"start": "08:00:00",
"end": "12:00:00"
}
如果PostgreSQL中的数据类型是“没有时区的时间”,为什么条令会带来所有与时区相关的数据?为什么我应该将这些“时间”字段映射为字符串,以便只获取时间
是否有一种方法可以将列映射为“时间”,并获得我想要的相同结果(关于时间的简单信息)
提前感谢它可能正在读取服务器时区设置。这真的是一个ORM的东西,不是PostgreSQL的东西。是的,这是一个ORM的问题。当然可以但我想知道如何解决这个问题。根据文档,doctrine2只能将时间域映射到DateTime。但您可以创建自己的映射类型,该类型将映射到PHP时间对象,如下所示: