gpt4 book ai didi

php - 我可以使用 PHP 在 map 中设置时区吗?

转载 作者:行者123 更新时间:2023-11-29 05:00:08 25 4
gpt4 key购买 nike

我有一个社交网站,我已经用 PHP/MySQL 开发了几年,但我现在又要从头开始重新构建整个网站。这一次,我真的很想添加用户在我的网站上为时间设置时区的功能。

话虽如此,我要求提供从头到尾执行此操作所需步骤的指南。我的旧站点对所有日期和时间都使用 mysql datetime 并且效果很好,但我读到最好像文本文件一样使用并使用 UTC 存储所有日期和时间,有人可以解释我该怎么做吗?我还能在 php 中使用 now() 函数来节省 mysql 的时间吗?

我还看到了 php 可以生成所有时区的列表,它显示了大约一百万(不是真的)但我想知道,是否有可能显示某种带有图像或其他内容的 map 以及链接到主要时区?

请提供有关设置用户时区的任何提示,我可以做这部分,但是一旦我保存了用户的时区并准备好使用,我如何才能确保用户看到的是正确的时间以及如何在正确的时间。

抱歉,如果这让您感到困惑,那么任何帮助都会很好,谢谢。

最佳答案

根据我的经验,在使用 php 时,最好将使用 time() 生成的时间戳存储为数据库中的 int。虽然在查看数据库时阅读它们可能不是那么容易(因为您无法仅从数字中猜出实际日期),但是在 php 中处理日期时时间戳是最原生的东西。

要保存每个用户的时区,您可以简单地保存偏移量,以小时为单位,或以分钟为单位更好(因为某些时区是半小时)。因此,例如我的时区偏移量将是 +60 (UTC+1),而在美国,大多数时区会有类似 -480 (UTC-8) 或类似的东西。

然后在为用户显示时间时,您只需选择时间戳(采用 UTC 时间)和时区偏移量,并使用标准的 date() 函数从中生成一个可读的日期格式化。

例如:

<?php
$time = time(); // from database or time() for "now"
$offset = -480; // from database

// add the offset to the time you want to display and you have the user's time
echo date( 'd.m.Y H:i', $time + $offset * 60 );
?>

此外,您还可以将格式字符串 (d.m.Y H:i) 存储在数据库中,以便每个用户都可以选择自己喜欢的格式。

关于php - 我可以使用 PHP 在 map 中设置时区吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1985879/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com