Existem duas funções de formatação para hora em PHP: date() e gmdate(). A descrição na documentação oficial é:
date – formata uma hora/data local
gmdate – formata uma data/hora GMT/UTC, retornado é Greenwich. Hora Média (GMT).
Por exemplo, o fuso horário em que estamos agora é +8, então a hora retornada pelo servidor que executa o seguinte script deve ser assim:
A hora atual é assumida como 2007-03-14 12:15:27
echo date( 'Ymd H:i:s ', time()); A saída é: 2007-03-14 12:15:27
echo gmdate('Ymd H:i:s', time()); -03-14 04:15:27
Mas isso é apenas o resultado da execução do PHP no Linux + Apache. Se for executado no Windows, as duas funções retornam: 2007-03-14 04:15:27.
Portanto, devemos fornecer uma forma de escrita compatível, usar gmdate uniformemente e definir manualmente o fuso horário atual. O método de escrita é melhorado da seguinte forma:
echo gmdate('Ymd H:i:s', time() + 3600 * 8. );
Desta forma, não importa qual seja a situação no Linux + Os resultados corretos são obtidos tanto no Apache quanto no Windows. Claro, há outra vantagem em escrever desta forma. Quando o site é para todo o mundo, apenas para o usuário do site. precisa definir o fuso horário, e o programa calculará automaticamente o horário com base no fuso horário definido pelo usuário. O horário de liberação da informação no banco de dados armazena apenas o horário gerado pelo horário atual (). O fuso horário da China +8 é: 2007-03-14 12:15:27, então os usuários na Europa +2 fuso horário consulte O horário de lançamento desta informação é: 2007-03-14 06:15:27, então o horário de todas as informações corresponderão corretamente.