Установите правильный часовой пояс в функции даты PHP

#php #wordpress #datetime #timestamp-with-timezone

#php #wordpress #дата и время #timestamp-with-timezone

Вопрос:

Я написал свой первый плагин WordPress, который просматривает файл на сервере и возвращает временную метку. Моя проблема в том, что временная метка сервера равна 8 утра, но возвращаемое значение равно 13:00. Как я могу настроить отметку времени в PHP, чтобы она соответствовала реальному времени? Вот код, который я использовал:

 function wp_file_last_updated( $atts ){
$a = shortcode_atts ( array(
    'url' => 'No File Specified'
    ), $atts );

$filename = $a['url'];
if (file_exists($filename)) {
return "$filename was last modified: " . date ("F d Y H:i:s.", filemtime($filename));
}
}
add_shortcode('filedate', 'wp_file_last_updated');

?>
  

Ответ №1:

Вы должны установить часовой пояс в настройках WordPress

или

Установите часовой пояс по умолчанию в начале вашего php-файла с помощью следующей функции php http://php.net/manual/en/function.date-default-timezone-set.php

Комментарии:

1. Часовой пояс wordpress не помог, но добавление функции PHP сделало свое дело! Спасибо за вашу помощь.

Ответ №2:

 date_default_timezone_set("set supported time zone");
$date=date("Y-m-d H:i:s");
  

Поддерживаемые часовые пояса перечислены на http://php.net/manual/en/timezones.php

Комментарии:

1. Спасибо! Это исправлено .. я ценю, что вы нашли время, чтобы помочь.

Ответ №3:

Я нахожусь на Amazon Lightsail, и изменение часового пояса из области администрирования WordPress у меня не работает. Если вы используете Lightsail, вам нужно будет изменить часовой пояс на уровне сервера.

 // list all the timezones
timedatectl list-timezones

// change to the your choice of timezone     
sudo timedatectl set-timezone America/Vancouver

// display the current selected timezone
timedatectl
  

https://forums.aws.amazon.com/message.jspa?messageID=754347