1

请随意只回答部分问题,无论您可能有什么答案。

使用新的 2.2 版 cake 更好地支持时区,这是完美的时机,因为我正在开发一个非常“时间敏感”的应用程序。尽管尽我所能,但我根本无法让一切正常工作。所以这是我的问题:

日期时间条目(认为创建/修改)是否应该存储在 UTC 中?如果是这样,确保蛋糕使用 UTC 的最有效方法是什么?

时间戳(精确的时刻)应该存储为 int 还是 mysql 中的时间戳?

使用新蛋糕,我如何自动将 UTC int/timestamps 转换为默认站点时区?用户时区(存储在他们的用户元组中)?

如果日期时间(创建/修改)时间存储为 UTC,如何使用 cake 将它们转换为默认站点时区?用户时区?

谢谢!

4

1 回答 1

2
  1. 如果您想为您的站点用户自定义时间设置,那么您应该使用全局时间设置,即 UTC 格式。以 UTC 格式保存到数据库中。在您的 app/Config/core.php 中,您将找到以下行。

    date_default_timezone_set('UTC');  // at line 232
    

    因此,您可以确认 cake 将使用 UTC 时间格式,同时将时间保存到数据库中。

  2. 以下项目总结了 MySQL 4.1.2 之前的 TIMESTAMP 初始化和更新属性:

    如果该列设置为 NULL 或根本未指定,则表行中的第一个 TIMESTAMP 列会在创建记录时自动设置为当前时间戳。

    当行中任何其他列的值发生更改时,表行中的第一个 TIMESTAMP 列会自动更新为当前时间戳,除非显式地为 TIMESTAMP 列分配除 NULL 以外的值。

    如果在创建表时为第一个 TIMESTAMP 列指定了 DEFAULT 值,它会被静默忽略。

    表中的其他 TIMESTAMP 列可以通过为它们分配 NULL 来设置为当前 TIMESTAMP,但它们不会自动更新。

我认为,如果您不想自动更改时间戳,最好将时间戳保存在整数字段中。

于 2012-07-17T04:46:09.160 回答