PHP date() 与时区?

标签 php date timezone

所以我检查了 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/

相关文章:

php - Symfony 3 - 来自数据库的动态表单字段

php - 从 ckeditor 中输入的 html 代码创建 docx 文件

oracle - 在 aws ec2 实例上获取 ORA-01882 : timezone region not found with Oracle UCP,?

PHP - 从图像创建一个图像

javascript - 使用 JS/PHP 验证登录表单

java - MM/DD/YYYY Java 程序

Javascript - 如何将 html 日期限制为今天的日期?

Javascript 日期解析 - 为什么?

php - Paypal 预批开始日期时区?

python - 如何在我的 jinja 过滤器中使用 babel 启用时区?