所以我检查了 supported time zones in PHP 的列表我想知道如何将它们包含在 date()
函数中?
谢谢!
我不想要默认时区,每个用户都将他们的时区存储在数据库中,我采用用户的时区并使用它。如何?不过,我知道如何从数据库中获取它,而不是如何使用它。
最佳答案
对于这样的任务,你真的应该使用 PHP 的 DateTime 类。请忽略所有建议您使用 date() 或 date_set_time_zone 的答案,这简直是糟糕且过时的。
我将使用伪代码进行演示,因此请尝试调整代码以满足您的需求。
假设变量 $tz 包含有效时区的字符串名称,变量 $timestamp 包含您希望根据时区格式化的时间戳,代码如下所示:
$tz = 'Europe/London';
$timestamp = time();
$dt = new DateTime("now", new DateTimeZone($tz)); //first argument "must" be a string
$dt->setTimestamp($timestamp); //adjust the object to correct timestamp
echo $dt->format('d.m.Y, H:i:s');
DateTime 类很强大,并且要掌握它的所有功能 - 您应该花一些时间在 php.net 上阅读它。要完全回答您的问题 - 是的,您可以动态调整时区参数(在从 db 读取时的每次迭代中,您可以创建一个新的 DateTimeZone() 对象)。
关于PHP date() 与时区?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20288789/