PHP date_timezone_set не позволяет формату даты показывать время 24 часа

0

У меня есть следующий код:

$date = date_create('2014-11-06T23:00:00.000Z');
date_timezone_set($date, timezone_open('Australia/Victoria'));
echo $date ->format('Y-m-d H:i:s');

И это приводит к:

2014-11-07 10:00:00 

Однако в PHP doco здесь говорится, что капитал H является 24-часовым: http://php.net/manual/en/function.date.php H 24-часовой формат часа с ведущими нулями от 00 до 23

Если я прокомментирую среднюю строку следующим образом:

$date = date_create('2014-11-06T23:00:00.000Z');
#date_timezone_set($date, timezone_open('Australia/Victoria'));
echo $date ->format('Y-m-d H:i:s');

Это приводит к:

2014-11-06 23:00:00 

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

Почему установка date_timezone_set не позволяет мне показать дату в 24-часовом формате времени и как это исправить?

Теги:
datetime

1 ответ

0

Если вы не укажете часовой пояс, date_create предполагает текущий часовой пояс. Если вы не определяете его, он будет использовать UTC.

Поскольку часовой пояс указан после date_create дата сохраняется как UTC.

С 2014-11-06 23:00 UTC в то же время, что и 2014-11-07 10:00 UTC + 11 (Австралия/Виктория), вы увидите последнее, когда вы "эхо" дате.

  • 0
    If you don't define one then it will use UTC. неправда. Если строка даты уже имеет определенный часовой пояс, вы не можете установить его в другой с помощью второго параметра. Попробуй ... Или заметь здесь .
  • 0
    Я хотел удалить этот вопрос, так как проблема была ошибкой с моей стороны .... но я нигде не вижу, как удалить вопрос ....

Ещё вопросы

Сообщество Overcoder
Наверх
Меню