новый DateTime ('2016-04-01 00:00:00') возвращается '2016-04-01 12:00:00

Это, вероятно, нелегко, но я не вижу решения. У меня есть следующий код:

$begin = new DateTime('2016-03-14 00:00:00'); echo $begin->format('Ymd h:i:s'); 

Выход:

 2016-03-14 12:00:00 

Я попытался изменить таймшоны, установить часовой пояс, опустить его. Выход никогда не изменяется. Что дает? Я хочу, чтобы результат читался «2016-03-14 00:00:00».

Solutions Collecting From Web of "новый DateTime ('2016-04-01 00:00:00') возвращается '2016-04-01 12:00:00"

Вам нужно использовать H как есть, в течение 24 часов, а h – 12 часов. 12:00:00 – 12:00 или 00:00:00:

 $begin = new DateTime('2016-03-14 00:00:00'); echo $begin->format('Ymd H:i:s'); 

Должен быть

 $begin = new DateTime('2016-03-14 00:00:00'); echo $begin->format('Ymd H:i:s'); 

h 12-часовой формат часа с ведущими нулями от 01 до 12

H 24-часовой формат часа с ведущими нулями от 00 до 23

http://php.net/manual/en/function.date.php

h для 12-часовых часов (AM / PM), поэтому в вашем шаблоне отсутствует A или A :

 $begin = new DateTime('2016-03-14 00:00:00'); echo $begin->format('Ymd H:i:s a'); 

даст вам 2016-04-01 12:00:00 am .

Если вам нужны полные 24-часовые часы, вам нужно вместо этого использовать H :

 $begin = new DateTime('2016-03-14 00:00:00'); echo $begin->format('Ymd H:i:s'); 

что даст ожидаемый 2016-04-01 00:00:00 .

Вот документация для поддерживаемых заполнителей, которую вы можете использовать с format() .

Как уже было сказано, h для 12-часового формата часов и H для 24-часового формата часов. Изменив это письмо, ваша дата будет отформатирована по вашему желанию.

 $begin = new DateTime('2016-03-14 00:00:00'); echo $begin->format('Ymd H:i:s'); 

Вот список форматов, который можно использовать для объекта DateTime в PHP ( Source )

 Day of Month ____________ d | Numeric, with leading zeros 01–31 j | Numeric, without leading zeros 1–31 S | The English suffix for the day of the month st, nd or th in the 1st, 2nd or 15th. Weekday _______ l | Full name (lowercase 'L') Sunday – Saturday D | Three letter name Mon – Sun Month ______ m | Numeric, with leading zeros 01–12 n | Numeric, without leading zeros 1–12 F | Textual full January – December M | Textual three letters Jan - Dec Year ____ Y | Numeric, 4 digits Eg., 1999, 2003 y | Numeric, 2 digits Eg., 99, 03 Time ____ a | Lowercase am, pm A | Uppercase AM, PM g | Hour, 12-hour, without leading zeros 1–12 h | Hour, 12-hour, with leading zeros 01–12 G | Hour, 24-hour, without leading zeros 0-23 H | Hour, 24-hour, with leading zeros 00-23 i | Minutes, with leading zeros 00-59 s | Seconds, with leading zeros 00-59 T | Timezone abbreviation Eg., EST, MDT ... Full Date/Time c | ISO 8601 2004-02-12T15:19:21+00:00 r | RFC 2822 Thu, 21 Dec 2000 16:01:07 +0200