возврат даты php 1970-01-01 08:00:00

#php #strtotime

#php #strtotime

Вопрос:

 <?php 
echo date("Y-m-d H:i:s", 0);
 ?>
 

//Результат: 1970-01-01 08:00:00

Мой вопрос: второй параметр функции date равен 0, он должен быть 1970-01-01 00:00:00. Почему это 1970-01-01 08:00:00?
Я установил конфигурацию в php.ini
[Дата]
date.timezone=Asia/Ho_Chi_Minh

//Asia/Ho_Chi_Minh: UTC 7 (GMT 7)
Пожалуйста, помогите мне.

Комментарии:

1. Добро пожаловать в Stackoverflow! Лучше думать об этом сообществе, как вы делаете для Википедии. Пользователи приходят сюда с конкретным вопросом, ища конкретный ответ. Пожалуйста, отредактируйте заголовок вашего сообщения, чтобы будущие пользователи могли его просмотреть, текущий заголовок не содержит описания и является неоднозначным. Я надеюсь, что вы хорошо проведете здесь время!

2. Правильно ли указано время при вводе echo date("Y-m-d H:i:s") ? Похоже, что время сервера неверно

Ответ №1:

Из вики:

Эпоха Unix — это время 00:00:00 UTC 1 января 1970 года

Как вы видите, начало начинается с часового пояса UTC. Это означает, что это было 8:00 , Asia/Ho_Chi_Minh когда началась эпоха Unix.

Если вам нужно получить 0:00 , вы должны установить отрицательный второй параметр

 date_default_timezone_set('Asia/Ho_Chi_Minh'); // Set UTC timezone
echo date("Y-m-d H:i:s", -(8 * 60 * 60));
 

ДЕМОНСТРАЦИЯ

Ответ №2:

Установите дату php и часовой пояс по умолчанию, если вы хотите установить текущее время:

 date_default_timezone_set('Asia/Ho_Chi_Minh');
echo date("Y-m-d H:i:s");
 

вам не нужен второй параметр.

Ответ №3:

date() всегда показывает местное время. Это для тебя, Азия / Ho_Chi_Minh. Функция gmdate() используется для отображения времени UTC / GMT.

 echo gmdate("Y-m-d H:i:s", 0);
//Result: 1970-01-01 00:00:00
 

Вы также можете использовать DateTime. Если DateTime создается из метки времени, внутренним часовым поясом всегда является UTC.

 $dateTime = new DateTime('@0');
echo $dateTime->format("Y-m-d H:i:s");
//Result: 1970-01-01 00:00:00
 

Вам не нужно менять часовой пояс по умолчанию ни для одного из вариантов.