Como posso obter o carimbo de hora UTC / GMT +/- usando a função date () do PHP? Por exemplo, se eu tentar
date("Y-m-d H:i:s", time());
Vou obter o carimbo de data / hora Unix; mas preciso obter o carimbo de hora UTC / GMT com a string GMT / UTC +/- 0400 ou GMT / UTC +/- 1000 com base nos horários locais.
Respostas:
Usar
gmdate
sempre retornará uma data GMT. A sintaxe é a mesma dedate
.fonte
gmdate("U") == time()
.) Parece um comportamento potencialmente problemático. Verifique e registre um bug com o projeto PHP.time()
retorna "número de segundos desde a Época do Unix (1 de janeiro de 1970 00:00:00 GMT)". NotaGMT
. O fato de que, por padrão, seu sistema converte isso para seu fuso horário para exibição, é uma conveniência do usuário. Internamente, é sempre GMT.Um simples gmdate () será suficiente
fonte
Como respondido anteriormente aqui , desde o PHP 5.2.0 você pode usar a
DateTime
classe e especificar o fuso horário UTC com uma instância deDateTimeZone
.A documentação DateTime __construct () sugere passar "agora" como o primeiro parâmetro ao criar uma instância de DateTime e especificar um fuso horário para obter a hora atual.
fonte
DateTime
? Executando-o sozinho, parece funcionar muito bem sem eles.namespace A
declaração no topo, o PHP assumiráDateTime
que se refere aA\DateTime
, o que está errado. Adicionar a barra invertida corrige o problema. É um bom hábito a ser adotado mesmo que você ainda não use namespaces, na minha opinião.fonte
fonte
Obtenção da data UTC
Obtendo carimbo de data / hora UTC
O resultado não será diferente mesmo que você tenha
date_default_timezone_set
em seu código.fonte
Além de ligar,
gmdate
você também pode colocar este código antes do restante do código:Isso fará com que o restante de suas chamadas relacionadas a data / hora usem o fuso horário GMT / UTC.
fonte
Você pode usar a função gmmktime sem argumentos para obter o carimbo de data / hora UTC atual:
O gmmktime só funcionará se o horário do seu servidor estiver usando UTC. Por exemplo, meu servidor está definido como US / Pacific. a função listada acima reflete o horário do Pacífico.
fonte
Seu formato personalizado está faltando
O
para fornecer a você as diferenças de fuso horário da hora local.No entanto, para maximizar a portabilidade / interoperabilidade, eu recomendaria usar o formato de data ISO8601
c
Você pode usar também
gmdate
e a string de deslocamento de fuso horário sempre será+00:00
fonte
Você pode usar o seguinte para obter a hora UTC:
fonte
fonte
Abaixo, encontre o código PHP para obter a hora UTC (Coordinated Universal Time) atual
fonte