Показывать wp_next_scheduled по местному времени

Я стараюсь почти все .. но wp_next_scheduled('hook_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_default_timezone_get() вернуть универсальное глобальное время.
Как получить правильное местное время 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');

Я пробовал также это: $date = new DateTime("@$time", new DateTimeZone('Asia/Bangkok')); но независимо от того, что я установил часовой пояс, он всегда возвращает один и тот же результат.

И результат:

ACTUAL:  2015-12-12 22:45:10  // correct
WITH TZ: 2015-12-12 22:45:10  // correct
RESULT:  2015-12-12 21:45:39  // incorrect

2) Правильное решение

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

И результат:

RESULT2: 2015-12-12 22:45:39  // correct

1

Решение

WordPress использует метку времени по Гринвичу для перепланирования задачи каждый раз, когда она выполняется, поэтому, чтобы конвертировать метку времени в местную, вам нужно добавить смещение по местному времени от времени по Гринвичу.

К счастью, есть функция под названием get_date_from_gmt тот

Просто добавляет значение gmt_offset вариант

Вот код:

$time = wp_next_scheduled('hook_task');

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

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]