请随意只回答部分问题,无论你有什么答案。
有了新的2.2版本的cake,时区得到了更好的支持,这是一个完美的时机,因为我正在开发一个非常"时间敏感"的应用程序。尽管我尽了最大的努力,但我根本无法让一切正常运转。以下是我的问题:
日期时间条目(想想创建/修改的)是否应该存储在UTC中?如果是这样的话,确保蛋糕使用UTC最有效的方法是什么?
时间戳(精确的时刻)应该以int或时间戳的形式存储在mysql中吗?
使用新的蛋糕,我如何自动将UTC int/timestamps转换为默认的站点时区?用户时区(存储在用户元组中)?
如果日期时间(创建/修改)存储为UTC,如何使用cake将其转换为默认站点时区?用户时区?
谢谢!
-
如果要为站点用户自定义时间设置,则应使用全局时间设置,即UTC格式。以UTC格式保存到数据库中。在您的app/Config/core.php中,您会发现以下行。
date_default_timezone_set('UTC'); // at line 232
因此,您可以确认cake将使用UTC时间格式,同时将时间保存到数据库中。
-
以下项目总结了MySQL 4.1.2之前的TIMESTAMP初始化和更新属性:
如果表行中的第一个TIMESTAMP列设置为NULL或根本没有指定,则在创建记录时,该列将自动设置为当前时间戳。
当该行中任何其他列的值发生更改时,表行中的第一个TIMESTAMP列将自动更新为当前时间戳,除非显式为TIMESTAMP行指定了NULL以外的值。
如果在创建表时为第一个TIMESTAMP列指定了DEFAULT值,则会自动忽略该值。
表中的其他TIMESTAMP列可以通过为其指定NULL来设置为当前TIMESTAMP,但它们不会自动更新。
我认为,如果您不想自动更改时间戳,最好将其保存在整数字段中。