$ timeposted = "7:10 pm";
Это значение в настоящее время относится к канадскому времени (quebec). Я пытаюсь найти способ превратить его во Францию. Как я могу это сделать ?
Используйте функцию date_default_timezone_set () PHP.
Если вы хотите изменить его во Францию, вы должны использовать
date_default_timezone_set('Europe/Paris');
список поддерживаемых часовых поясов можно найти здесь: http://www.php.net/manual/en/timezones.php
Функцию date_default_timezone_set () можно найти здесь: http://php.net/manual/en/function.date-default-timezone-set.php
Предполагая, что ваша настройка PHP настроена на время в Квебеке, вы можете преобразовать ее во временную зону Франции, выполнив следующие действия:
$date = new DateTime('7:10pm', new DateTimeZone('Europe/Paris')); echo $date->format('Ymd H:i:sP');
Или, если ваш сервер не настроен на часовой пояс Квебека, вы можете:
$date = new DateTime('7:10pm', new DateTimeZone('America/Montreal')); $date->setTimezone(new DateTimeZone('Europe/Paris')); echo $date->format('Ymd H:i:sP');
который возвращается
2013-06-14 01:10:00+02:00
Вы можете узнать больше о PHP и часовых поясах здесь: http://www.php.net/manual/en/datetime.settimezone.php
<?php date_default_timezone_set('America/Los_Angeles');//Your global default timeZone. function convertTimeZone($oTime, $oTimeZone, $nTimeZone) { //Parameter string $oTime is original time to be converted from in format FdY h:i:s //Parameter string $oTimeZone is timezone to be conveted from- Timezone of $oTimeZone //Parameter string $nTimeZone is timezone to be conveted to date_default_timezone_set($oTimeZone); //Change default timezone to old timezone within this function only. $originalTime = new DateTime($oTime); $originalTime->setTimeZone(new DateTimeZone($nTimeZone)); //Convert to desired TimeZone. date_default_timezone_set('America/Los_Angeles') ; //Reset default TimeZone according to your global settings. return $originalTime->format('FdY h:i:s A'); //Return converted TimeZone. } $LATime = convertTimeZone("2011-01-07 19:55:00","America/Chicago", "America/Los_Angeles"); echo $LATime; ?>
Вы можете использовать функцию date_default_timezone_set
для изменения loacal часового пояса
пример
date_default_timezone_set('Europe/Paris');
Проверьте DateTime :: setTimezone :
пример
date_default_timezone_set('America/Los_Angeles'); $datetime = new DateTime('2013-06-13 12:35:23'); echo $datetime->format('Ymd H:i:s') . "\n"; $timeEurope = new DateTimeZone('Europe/London'); $datetime->setTimezone($timeEurope); echo $datetime->format('Ymd H:i:s');
Это моя функция, которая требует времени из mysql db (который я полностью сохранил в UTC) и конвертирует в новый часовой пояс и форматирует его просто.
function changetimefromUTC($time, $timezone) { $changetime = new DateTime($time, new DateTimeZone('UTC')); $changetime->setTimezone(new DateTimeZone($timezone)); return $changetime->format('m/d/yh:i a'); }
Это список поддерживаемых часовых поясов http://us1.php.net/manual/en/timezones.php