Php 在本地时间显示计划的下一个工作包

Php 在本地时间显示计划的下一个工作包,php,wordpress,datetime,local,Php,Wordpress,Datetime,Local,我几乎什么都试过了。。但是wp\u next\u scheduled('hook\u task')总是返回1小时后的时间(我的本地时区是UTC+1,任务调度器设置为每分钟运行一次) 我尝试以下转换: echo gmdate('Y-m-d H:i:s',wp_next_scheduled('hook_task')); echo date('Y-m-d H:i:s',current_time(wp_next_scheduled('hook_task'))); echo date('Y-m-d H:i

我几乎什么都试过了。。但是
wp\u next\u scheduled('hook\u task')
总是返回1小时后的时间(我的本地时区是UTC+1,任务调度器设置为每分钟运行一次)

我尝试以下转换:

echo gmdate('Y-m-d H:i:s',wp_next_scheduled('hook_task'));
echo date('Y-m-d H:i:s',current_time(wp_next_scheduled('hook_task')));
echo date('Y-m-d H:i:s',current_time(wp_next_scheduled('hook_task'), 1));
但是一切都回来了19:05
当下一个函数返回正确的本地时间时20:05

echo date('Y-m-d H:i:s',current_time("timestamp"));
date\u default\u timezone\u get()
returnUTC
如何获得下一次计划运行的正确本地日期时间20:05

测试 我已经根据您的答案进行了尝试:

1) 第一次测试

echo 'ACTUAL:  ' . date('Y-m-d H:i:s',current_time("timestamp")) . '<br>';
$date = new DateTime("now", new DateTimeZone('Europe/Bratislava'));
echo 'WITH TZ: ' . $date->format('Y-m-d H:i:s') . '<br>';
$time = wp_next_scheduled('hook_task');
$date = new DateTime("@$time", new DateTimeZone('Europe/Bratislava'));
echo 'RESULT:  ' . $date->format('Y-m-d H:i:s');
2)正确的解决方案

$time = wp_next_scheduled('hook_task');
echo 'RESULT2: ' . get_date_from_gmt( date('Y-m-d H:i:s', $time) );
结果:


Wordpress使用GMT时间戳在每次执行任务时重新安排任务,因此为了在本地时间戳中转换时间戳,您需要添加本地时间相对于GMT时间的偏移量

幸运的是,有一个函数叫做

只需添加
gmt\u offset
选项的值

代码如下:

$time = wp_next_scheduled('hook_task');

echo get_date_from_gmt( date('Y-m-d H:i:s', $time) );

很抱歉,这不起作用:(…检查我的更新回复。@Atiris我已经更改了我的答案非常感谢@d79..现在它起作用了..没那么容易:)
RESULT2: 2015-12-12 22:45:39  // correct
$time = wp_next_scheduled('hook_task');

echo get_date_from_gmt( date('Y-m-d H:i:s', $time) );