我对博士后使用Doctrine2.在一张表中,我有两种不同的日期类型:birthdate:datecreated_at:datetimetz.两者都成为DateTime对象,但具有不同的属性.

created_at datetimetz:

DateTime Object
(
    [date] => 2013-04-18 11:54:34
    [timezone_type] => 1
    [timezone] => +02:00
)

birthdate date:

DateTime Object
(
    [date] => 1970-01-01 00:00:00
    [timezone_type] => 3
    [timezone] => Europe/Berlin
)

我需要以同样的方式格式化我的对象.两者都应该有timezone_type=3个.

我怎样才能做到这一点?

推荐答案

时区可以是DateTime对象中的三种不同类型之一:

  • 1型;UTC偏移量,如new DateTime("17 July 2013 -0300");
  • 2型;时区缩写,如在new DateTime("17 July 2013 GMT");
  • 类型3:时区标识符,如new DateTime( "17 July 2013", new DateTimeZone("Europe/London"));

只有连接了类型3时区的DateTime对象才能正确进行DST.

为了始终使用类型3,您需要将时区作为this list的可接受标识符存储在数据库中,并在实例化时将其应用于DateTime对象.

Postgresql相关问答推荐

PostgreSQL:函数结果表内冲突(...)上的";中的字段名称

PostgreSQL存储过程中不存在游标

单个WAL文件中的操作会影响哪些表和多少行

PostgreSQL临时文件的误解

具有有限字母表的自定义字符串类型

连接到 PostgreSQL 时没有属性执行错误

如何判断上次在 TimescaleDB 上运行连续聚合作业(job)的时间

Windows上的psql:错误:编码UTF8的字节序列无效:0xc8 0x20

如何展平也在关系中使用的区分大小写的列

PostgreSQL SELECT 结果具有不同的 id,它更喜欢来自另一个表的特定值

PostgreSQL 错误:42P01:relation "[Table]" does not exist

在 PostgreSQL docker 镜像中创建表

Select 日期最高的行

Flask-SQLAlchemy db.session.query(Model) 与 Model.query

从 Postgres 数据库中删除所有函数

在函数中返回字段作为插入结果

如何增加 max_locks_per_transaction

防止 CHARACTER VARYING 字段中出现空字符串

如何为 Postgres psql 设置时区?

如何在我的 Mac 上卸载 postgresql(运行 Snow Leopard)