2016-05-28 7 views
0

Я устанавливаю ежедневный обратный отсчет до даты окончания. Код работает нормально.Установить часовой пояс для функции strtotime

Единственная проблема в том, что, в соответствии с PHP Manual, функция будет использовать часовой пояс по умолчанию:

Каждый параметр этой функции используется часовой пояс по умолчанию, если часовой пояс не указан в этом параметре.

Мне нужно указать часовой пояс.

Разделы, которые я прочитал в руководстве, не совсем ясны, как это сделать.

Вот мой код:

<?php 
$date = strtotime("September 30, 2016 11:59 PM"); 
$remaining = $date - time(); // number of seconds remaining 
$days_remaining = floor($remaining/86400); 
$hours_remaining = floor(($remaining % 86400)/3600); // display final 5 days only 
echo "$days_remaining Days Remaining"; 
?> 

Есть простой способ интегрировать США Pacific Time Zone в коде выше?

Я думаю, чтобы сделать это первая строка кода:

date_default_timezone_set('America/Los_Angeles'); 

Но я не уверен, что это будет работать, и я не хочу, чтобы изменить часовой пояс для других сценариев.

Я открыт для альтернативных методов достижения этой цели.

+1

Любая конкретная причина не использовать DateTime? –

+0

Нет особых причин. Это то, что я придумал. Если есть более простой и эффективный способ, отправьте ответ. –

ответ

2

Вы можете захватить существующий часовой пояс по умолчанию, используя date_default_timezone_get()

Так сохранить текущий часовой пояс, установить новый, а затем сделать вас известково, а затем заменить оригинальный часовой пояс, как этот

$save_zone = date_default_timezone_get(); 

date_default_timezone_set('America/Los_Angeles'); 

$date = strtotime("September 30, 2016 11:59 PM"); 
$remaining = $date - time(); // number of seconds remaining 
$days_remaining = floor($remaining/86400); 
$hours_remaining = floor(($remaining % 86400)/3600); // display final 5 days only 
echo "$days_remaining Days Remaining"; 

date_default_timezone_set($save_zone); 

список допустимых timezone settings

1

Почему бы не добавить часовой пояс к строке?

$inputDate = "September 30, 2016 11:59 PM"; 
$date = strtotime($inputDate . ' +0100'); 
Смежные вопросы