PHP根据GMT偏移量获取当前本地时间
php中有一个函数PHP根据GMT偏移量获取当前本地时间,php,Php,php中有一个函数date\u default\u timezone\u set(),它接受类似“UK/London”的时区字符串。但不幸的是,我只有用户的GMT偏移量 假设我在GMT+5上,我想获得基于GMT+5的当前时间。我在谷歌上做了很多搜索,但没有帮助 因为,我没有时区字符串,我正在寻找类似的东西 $current_date = date("Y M D H:S, "GMT +5"); 请帮助您现在只能使用GMT偏移量,也就是说,如果用户半年前告诉您他的GMT偏移量,而您现在想知道他所在
date\u default\u timezone\u set()
,它接受类似“UK/London”的时区字符串。但不幸的是,我只有用户的GMT偏移量
假设我在GMT+5上,我想获得基于GMT+5的当前时间。我在谷歌上做了很多搜索,但没有帮助
因为,我没有时区字符串,我正在寻找类似的东西
$current_date = date("Y M D H:S, "GMT +5");
请帮助您现在只能使用GMT偏移量,也就是说,如果用户半年前告诉您他的GMT偏移量,而您现在想知道他所在的位置是什么时候,那么这是完全没有用的。它基本上可以是几个小时内的任何东西。即使您在几秒钟前得到了偏移量,但如果您恰好遇到DST更改,则在您进行计算时,偏移量可能已经不同 话虽如此,您将需要从格式化时间中添加/减去偏移小时数,这是您唯一可以做的事情
$offset = 5;
$hours = (gmdate('H') + $offset) % 24;
echo $hours . gmdate(':i:s Y m d');
这只是一个例子,您还需要处理分钟偏移量。您现在只能专门使用GMT偏移量,也就是说,如果用户半年前告诉您他的GMT偏移量,而您现在想知道他所在的位置是什么时候,这是完全没有用的。它基本上可以是几个小时内的任何东西。即使您在几秒钟前得到了偏移量,但如果您恰好遇到DST更改,则在您进行计算时,偏移量可能已经不同
date_default_timezone_set('GMT');
$curTime = strtotime("+5 hours");
$current_date = date("Y M D H:S, $curTime);
话虽如此,您将需要从格式化时间中添加/减去偏移小时数,这是您唯一可以做的事情
$offset = 5;
$hours = (gmdate('H') + $offset) % 24;
echo $hours . gmdate(':i:s Y m d');
这只是一个例子,您还需要处理分钟偏移
date_default_timezone_set('GMT');
$curTime = strtotime("+5 hours");
$current_date = date("Y M D H:S, $curTime);
可能是@NorthBridge的重复,偏移量很奇怪,我不希望偏移量像$offset=4*60*60@莎拉为什么不呢?将GMT+5转换为5*60*60相当容易,不是吗?由于时区不太可能改变,您可以硬编码一个数组,将GMT偏移量作为键,时区字符串(英国/伦敦)作为值,并调用date_default_timezone_set()?@AlexandreN。这可能不起作用,因为如果偏移量是键,它将必须是多维数组(每个偏移量都有许多时区字符串),事情会变得很糟糕。可能是@NorthBridge的重复,偏移量在那里很奇怪,我不想要像$offset=4*60*60这样的偏移量@莎拉为什么不呢?将GMT+5转换为5*60*60相当容易,不是吗?由于时区不太可能改变,您可以硬编码一个数组,将GMT偏移量作为键,时区字符串(英国/伦敦)作为值,并调用date_default_timezone_set()?@AlexandreN。这可能行不通,因为如果偏移量是关键的,那么它必须是一个多维数组(每个偏移量都有许多时区字符串),事情会变得很糟糕。你刚刚发布了一个太复杂的答案,意思是什么?你想要一个更简单的函数吗?你不明白我写了什么?@decceze,看看下一个答案你刚刚发布了一个太复杂的答案,意思是什么?你想要一个更简单的函数吗?你不明白我写了什么?@decceze,看看下一个答案D