对于每个用户,每个记录都有一个mysql DB保存时间。喜欢
id user_id date_added
1 1 2016-06-08 12:22:19
2 2 2016-06-08 11:22:14
3 4 2016-06-08 11:02:09
4 1 2016-06-08 10:12:11
我还为每个用户提供了表格保存的时区,例如
id user_name timezone
1 user1 Pacific/Midway
2 user2 Asia/Dubai
现在我想在PHP中使用上述时区来计算用户记录的实时时间。
我尝试了很多例子,但没有工作,因为某些区域是+,而有些区域是 -
由于
答案 0 :(得分:1)
假设所有日期都以UTC日期格式存储,您需要转换时区以获取每个用户的本地时间。
示例:
Distinct
输出
// default timezone is UTC
$date = new DateTime('2016-06-08 12:22:19', new DateTimeZone('UTC'));
var_dump($date->format('Y-m-d H:i:sP'));
// convert timezone to Asia/Dubai +4 UTC
$date->setTimezone(new DateTimeZone('Asia/Dubai'));
var_dump($date->format('Y-m-d H:i:sP'));
要删除 string '2016-06-08 12:22:19+00:00' (length=25)
string '2016-06-08 16:22:19+04:00' (length=25)
和+00
,请删除+04
P
答案 1 :(得分:0)
尝试这种方式:
$date = new DateTime('2016-09-18 16:17:34', new DateTimeZone('Asia/Dhaka'));
// datetime for the timezone
echo $date->format('Y-m-d H:i:s');
答案 2 :(得分:-1)
示例:
// date from db
$date_string = '2016-06-08 11:22:14';
// create timezone
$dateTimeZone = new DateTimeZone('Asia/Dubai');
// create date time for timezone
$dateTimeLocale = new DateTime( $date_string, $dateTimeZone );