Почему мой strtotime («сегодня») не работает?

Я пытаюсь создать список выбора, начиная с текущей даты пользователя. Я хочу, чтобы он был установлен в полночь в формате timestamp unix.

Это все, что я делаю:

$today = strtotime('today'); echo $today; 

Это мой результат:

 1333144800 

который: Fri, 30 марта 2012 22:00:00 GMT согласно Epoch Converter

Если вы хотите, чтобы strtotime () возвращал временную метку относительно UTC (00:00:00 UTC вместо, например, 00:00:00 UTC + 2, если ваша система настроена на часовой пояс со смещением в 2 часа против UTC / GMT ), вам необходимо указать, что:

 $today = strtotime('today UTC'); 

GMT (+0) время

 echo $today = strtotime('today GMT'); echo "<br>" . $today = date("dmY H:i:s", $today); 

Мы ожидаем, что ваш сервер работает в GMT – это лучший (для маневрирования с отображением времени позже). Если нет, вы ДОЛЖНЫ скорректировать php.ini, установите эту «date.timezone = GMT».

Когда вы это сделаете, вы увидите 00:00 с моими кодами.

Затем вы должны разработать функцию (т.е. DisplayDate ()) в своем скрипте, чтобы правильно отображать даты вашего сайта, если

  • вы не в зоне GMT
  • или /, и если вы хотите, чтобы ваши пользователи видели время в своем часовом поясе с выбором часового пояса, например.

DisplayDate () должен включать поддержку изменений дневного света (0, или +1 час / лето и зимнее время).

 strtotime( $time ) 

предназначен для возврата timemamp unix, то есть он вернет число секунд с 1 января 1970 года. http://www.php.net/manual/en/function.strtotime.php

Чтобы обойти это, используйте что-то вроде:

 $today = date("d/m/YH:i:s", strtotime('today')); echo $today; 

Вы должны проверить конфигурацию часового пояса в файле php.ini. В моем случае (я живу в Сальвадоре) мне пришлось изменить его так:

 date.timezone = America/El_Salvador 

Возможно, вам придется установить время так же, как и день:

 $today_midnight = strtotime('today UTC 00:00');