Как я могу получить отметку времени UTC / GMT +/- с помощью функции PHP date ()? Например, если я попробую
date("Y-m-d H:i:s", time());
Я получу метку времени Unix; но мне нужно получить отметку времени UTC / GMT со строкой GMT / UTC +/- 0400 или GMT / UTC +/- 1000 в зависимости от местного времени.
Ответы:
Использование
gmdate
всегда возвращает дату по Гринвичу. Синтаксис такой же, как уdate
.источник
gmdate("U") == time()
.) Похоже на потенциально ошибочное поведение. Дважды проверьте и сообщите об ошибке в проекте PHP.time()
возвращает «количество секунд с начала эпохи Unix (1 января 1970 г., 00:00:00 по Гринвичу)». ПримечаниеGMT
. Тот факт, что по умолчанию ваша система преобразует этот часовой пояс для отображения, удобен для пользователя. Внутри всегда время по Гринвичу.Простой gmdate () будет достаточно
источник
Как ранее было сказано здесь , начиная с PHP 5.2.0 вы можете использовать
DateTime
класс и указывать часовой пояс UTC с экземпляромDateTimeZone
.В документации DateTime __construct () предлагается передать «сейчас» в качестве первого параметра при создании экземпляра DateTime и указать часовой пояс для получения текущего времени.
источник
DateTime
? Сам запускаю, вроде нормально работает и без них.namespace A
объявление вверху, PHP будет считать,DateTime
что ссылается на негоA\DateTime
, что неверно. Добавление обратной косой черты устраняет проблему. На мой взгляд, это хорошая привычка, даже если вы еще не используете пространства имен.источник
источник
Получение даты в формате UTC
Получение метки времени в формате UTC
Результат не будет отличаться даже
date_default_timezone_set
от вашего кода.источник
Помимо вызова,
gmdate
вы также можете поместить этот код перед остальной частью кода:Это заставит остальные ваши звонки, связанные с датой / временем, использовать часовой пояс GMT / UTC.
источник
Вы можете использовать функцию gmmktime без аргументов, чтобы получить текущую метку времени в формате UTC:
gmmktime будет работать только в том случае, если время вашего сервера использует UTC. Например, мой сервер настроен на США / Тихоокеанский регион. указанная выше функция отображает тихоокеанское время.
источник
Ваш собственный формат просто отсутствует,
O
чтобы дать вам смещение часового пояса от местного времени.Однако для максимальной переносимости / взаимодействия я бы рекомендовал использовать формат даты ISO8601.
c
Вы также можете использовать,
gmdate
и строка смещения часового пояса всегда будет+00:00
источник
Вы можете использовать следующее, чтобы получить время UTC:
источник
источник
Ниже приведен код PHP для получения текущего времени UTC (всемирное координированное время).
источник