我读到的关于将时间转换为用户时区的所有文章都说,最好的方法是将日期和时间存储为UTC,然后将用户的时区偏移量添加到这个时间中.

如何以UTC时间存储日期?我使用MySQL日期时间字段.

在PHP代码中向MySQL添加新记录时,我会使用now()插入MySQL DATETIME.

我需要使用不同于now()的东西来存储UTC时间吗?

推荐答案

MySQL:UTC_TIMESTAMP()

返回当前UTC日期和时间

菲律宾比索:gmdate()

PHP中还使用PHPdate_default_timezone_set()设置脚本的当前时区.您可以将其设置为客户端时区,以便所有格式化函数返回本地时间中的时间.

In truth though I had a hard time getting this to work and always stumble into some gotcha. Eg. time information returned from MySQL is not formatted as 'UTC' so strtotime transforms it into a local time if you are not careful. I'm curious to hear if someone has a reliable solution for this problem, one that doesn't break when dates traverse media boundaries (HTTP->PHP->MySQL and MySQL->PHP->HTTP), also considering XML and RSS/Atom.

Mysql相关问答推荐

MySQL问题难以将文本字符串转换为正确的日期格式

AWS RDS上的MySQL复制错误:超级权限或REPLICATION_SLAVE_ADMIN权限的访问被拒绝

加载数据本地infile,字段中有双引号和逗号

MySQL 8.0.34-从后端系统管理AWS RDS上的持久连接内存使用

运行简单查询时Prisma预准备语句错误

在MySQL中使用FIRST_VALUE()

为什么我的 SQL 查询不更新 Node.js 和 MySQL 中用户以外的用户属性?

Select 构成每天聚合 MAX 的各个行

Group By 查询运行速度太慢而无法正常运行

为什么order by子句可以利用索引?

从 SQL 中的左连接和内连接中减go 计数

如果我创建一个没有主键的表然后添加一个主键,主键是聚集索引吗?

MySQL按连续值和计数分组

更改整数时间到日期格式 MM/DD/YY,如 python 中的 datetime.fromtimestamp

什么是 PyMySQL,它与 MySQLdb 有何不同?它会影响 Django 部署吗?

让 MySQL 在 OSX 10.7 Lion 上运行

更改 Laravel 的 created_at 和 updated_at 的名称

应该使用什么列类型将序列化数据存储在 mysql 数据库中?

int(11) 和 int(11) UNSIGNED 有什么区别?

查询以显示所有表及其排序规则