PHP 和 MySQL 中的时区
将时区系统集成到 PHP 应用程序中可能具有挑战性,但在处理来自不同数据库的数据时,这一点至关重要时区。这是解决最常见问题并提供实用解决方案的综合指南。
在 MySQL 中存储日期时间
转换日期时间
处理夏令时 (DST)
MySQL 本身不处理 DST。 PHP 的 DateTimeZone 类提供命名时区,根据用户位置自动处理 DST,这应用于面向用户的时间戳。
旧数据迁移
如果存在如果插入数据时未考虑时区,请使用 MySQL 的 CONVERT_TZ 函数来更正选择和更新期间的时间戳。或者,通过转换为 UTC 然后返回本地时区来更新时间戳。
选择用户首选项的时区
示例代码
<?php // Convert PHP datetime to UTC $utc = new DateTime('now', new DateTimeZone('UTC')); // Retrieve a list of named time zones $timezones = DateTimeZone::listIdentifiers(); // Convert to user's time zone (e.g., PST) $pst = new DateTimeZone('America/Los_Angeles'); $utc->setTimezone($pst); // Display converted timestamp echo "UTC: " . $utc->format('Y-m-d H:i:s') . "\n"; echo "PST: " . $utc->format('Y-m-d H:i:s') . "\n"; // Store user's time zone preference $userTimezone = 'America/Los_Angeles'; $query = "UPDATE users SET timezone = '$userTimezone' WHERE ..."; ?>
注意: 一致地存储和转换时间戳非常重要,以避免数据不一致和用户混乱。通过遵循这些准则,您可以有效地管理 PHP 和 MySQL 应用程序中的时区。
以上是如何在 PHP 和 MySQL 中有效处理时区?的详细内容。更多信息请关注PHP中文网其他相关文章!