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