Intereting Posts

получить время UTC в PHP

Как я могу получить штамп времени UTC / GMT +/-, используя функцию date () PHP? Например, если я попытаюсь

date("Ymd H:i:s", time()); 

Я получу отметку времени Unix; но мне нужно получить отметку времени UTC / GMT со строкой GMT / UTC +/- 0400 или GMT / UTC +/- 1000 на основе локальных таймингов.

Использование gmdate всегда будет возвращать дату GMT. Синтаксис такой же, как и для date .

Простой gmdate () будет достаточно

 <?php print gmdate("Ymd\TH:i:s\Z"); 
 $time = time(); $check = $time+date("Z",$time); echo strftime("%B %d, %Y @ %H:%M:%S UTC", $check); 

Как уже упоминалось ранее , начиная с PHP 5.2.0 вы можете использовать класс DateTime и указать часовой пояс UTC с экземпляром DateTimeZone .

Документация DateTime __construct () предполагает отказ от первого параметра при создании экземпляра DateTime для получения текущего времени.

 $date_local = new \DateTime(); $date_utc = new \DateTime(null, new \DateTimeZone("UTC")); echo $date_local->format(\DateTime::RFC850); # Saturday, 18-Apr-15 13:23:46 AEST echo $date_utc->format(\DateTime::RFC850); # Saturday, 18-Apr-15 03:23:46 UTC 
 date("Ymd H:i:s", time() - date("Z")) 

Помимо вызова gmdate вы также можете поместить этот код перед остальной частью кода:

 <?php date_default_timezone_set("UTC"); ?> 

Это заставит остальные ваши вызовы, связанные с датой и временем, использовать часовой пояс GMT / UTC.

Вы можете использовать функцию gmmktime без аргументов, чтобы получить текущую временную метку UTC:

 $time = gmmktime(); echo date("Ymd H:i:s", $time); 

gmmktime будет работать только в том случае, если время вашего сервера использует UTC. Например, мой сервер настроен на US / Pacific. перечисленная функция выше echos back Pacific time.

Вы можете использовать следующее, чтобы получить время UTC:

 date_default_timezone_set('Asia/Calcutta'); $current_date = date("Y/m/dg:i A"); $ist_date = DateTime::createFromFormat( '"Y/m/dg:i A"', $current_date, new DateTimeZone('Asia/Calcutta') ); $utc_date = clone $ist_date; $utc_date->setTimeZone(new DateTimeZone('UTC')); echo 'UTC: ' . $utc_date->format('Ymd g:i A'); 
 /** * Converts a local Unix timestamp to GMT * * @param int Unix timestamp * @return int */ function local_to_gmt($time = '') { if ($time === '') { $time = time(); } return mktime( gmdate('G', $time), gmdate('i', $time), gmdate('s', $time), gmdate('n', $time), gmdate('j', $time), gmdate('Y', $time) ); }