0
我正在开发一个项目(在线游戏),用户可以使用编码的“机场”前往不同的国家&城市。一旦他们走,将数据库中的cityid
将例如更新:时区操纵
cityid = 1
(英国 - 伦敦)
cityid = 2
(美国 - LA)
因此,如果用户从英国前往美国它将存储数据库端cityid = 2
。
现在,
虽然这是功能性的,我希望将时区变更到它(如果可能的话),我曾尝试:
if ($user->cityid == 3)
{
$timestamp ='1502448414'; //Timestamp which you need to convert
$dt = new \DateTime("@$timestamp");
$destinationTimezone = new \DateTimeZone('Mexico/General'); // To which timezone you need to convert
$dt->setTimeZone($destinationTimezone); // Set timezone
echo 'Mexico: '. $dt->format('H:i a'), "\n"; // Echo your changed datetime
}
正如你所看到的,我已经使用墨西哥为演示试图找出我的方法。
但是,这只会提取加时间戳的时间而不是实时。我知道,我可以简单地将时间戳添加到数据库表中,然后每秒钟运行一次cron来更新表,但这似乎是一个漫长的蜿蜒的路线。
现在在app.php中,标准设置是UTC,它作为实时时钟运行,返回:date('H:i:s')
。
我的问题是(在很多谷歌搜索后)有没有一种方法来操纵这个,使date()
输出(美国)的新时间,当它已经去过?
道歉,我不能再添加编码到这个问题,我没有真正的想法如何接近它以上所述的一个。
大概应该来自服务器时间 – Farkie
@option必须提供时间戳。我用占位符时间戳更新了答案。还添加了一个不使用“碳”库 – chanafdo
大修改。似乎要做的伎俩!感谢您的帮助。 – Option