Defina o fuso horário em PHP

Defina o fuso horário em PHP

O valor do fuso horário é importante para qualquer site, porque os valores de data e hora são exibidos com base nesse valor. O script PHP usa o valor do fuso horário do servidor da web por padrão. Este valor do fuso horário pode ser alterado modificando o valor do data.fuso horário Diretiva no php.ini arquivo de configuração ou adicionando a entrada para o valor do fuso horário dentro do .htaccess arquivo ou usando várias funções internas. Diferentes maneiras de definir o valor do fuso horário em PHP foram mostradas neste tutorial.

Defina o valor do fuso horário modificando o PHP.arquivo ini

Uma das maneiras mais fáceis de definir o fuso horário padrão é modificar o data.fuso horário diretiva dentro do php.ini arquivo. Suponha que você queira definir o fuso horário padrão como 'Ásia/dhaka'. Abra o php.ini arquivar e procure a localização do data.fuso horário diretivo. Modifique a linha usando a seguinte linha:

data.fuso horário = 'Ásia/dhaka'


Salve o arquivo e reinicie o servidor da Web para definir a data e a hora do servidor com base no valor do fuso horário modificado.

Defina o valor do fuso horário modificando o .arquivo htaccess

Modificando o .O arquivo htaccess é outra maneira de definir o valor padrão do fuso horário. Abra o .arquivo htaccess e adicione a seguinte linha para definir o valor do fuso horário padrão como 'Ásia/dhaka':

php_value data.Filho horário 'Austrália/Melbourne'


Salve o arquivo e reinicie o servidor da Web para definir a data e a hora do servidor com base no valor do fuso horário modificado.

Defina o valor do fuso horário usando o date_default_timezone_set () função

O date_default_timezone_set () é a função PHP integrada para definir o valor do fuso horário. A saída de todas as funções internas de PHP relacionadas ao fuso horário padrão será alterado após a alteração do valor do fuso horário usando a função date_default_timezone_set (). A sintaxe desta função é dada abaixo:

Sintaxe

bool date_default_timezone_set (string timebone)


Esta função tem apenas um argumento obrigatório. Este argumento define um determinado fuso horário. Ele retorna verdadeiro se o valor do fuso horário válido for passado no argumento. Caso contrário, ele retorna falso. A função date_default_timezone_get () é usada para ler o valor atual do fuso horário do servidor. Portanto, essa função pode ser usada para verificar se o fuso horário é definido corretamente após definir o novo fuso horário usando a função date_default_timezone_set ().

Exemplo 1: Defina o fuso horário usando o date_default_timezone_set () função

Crie um arquivo PHP com o seguinte script para definir o fuso horário padrão como 'Ásia/Dhaka' usando a função date_default_timezone_set (). A função date_default_timezone_get () foi usada duas vezes para imprimir o valor do fuso horário antes e após o uso da função date_default_timezone_set ().

// Imprima o fuso horário atual
eco "o fuso horário atual é " . date_default_timezone_get () . "
";
// Alterar o fuso horário atual
date_default_timezone_set ('Ásia/dhaka');
// Imprima a alteração do fuso horário
eco "o fuso horário atual é alterado para ". date_default_timezone_get () . "";
?>


A saída a seguir mostra que o fuso horário padrão foi UTC, E o fuso horário mudou para Ásia/Dhaka Depois de definir o novo fuso horário:

Defina o valor do fuso horário usando a função ini_set ()

O ini_set () é uma função muito útil do PHP para modificar qualquer diretiva PHP usando um script sem acessar o PHP.arquivo ini. Este tutorial discutiu anteriormente que a data '.Diretiva do fuso horário necessário para modificar para alterar o valor atual do fuso horário. Portanto, a função ini_set () pode ser usada para alterar esse valor de diretiva. A sintaxe desta função é dada abaixo:

Sintaxe

string | false ini_set (opção string $, string | int | float | bool | null $ valor)


O primeiro argumento da função leva o nome da diretiva e o segundo argumento da função leva o valor. Ele retorna um valor de string no sucesso e um falso no fracasso.

Exemplo 2: Defina o fuso horário usando a função ini_set ()

Crie um arquivo PHP com o seguinte script que definirá o fuso horário padrão para 'America/Chicago' usando a função ini_set (). A função date_default_timezone_get () foi usada duas vezes para imprimir o valor do fuso horário antes e depois de usar a função ini_set ().

// Imprima o fuso horário atual
eco "o fuso horário atual é " . date_default_timezone_get () . "
";
// Alterar o fuso horário atual
ini_set (Data.fuso horário ',' America/Chicago ');
// Imprima o fuso horário alterado
eco "o fuso horário atual é alterado para ". date_default_timezone_get () . "";
?>


A saída a seguir mostra que o fuso horário padrão foi UTC, E o fuso horário mudou para 'America/Chicago' Depois de definir o novo fuso horário:

Defina o valor do fuso horário usando a classe DateTimeZone

Usando a classe DateTimeZone é outra maneira de alterar o valor do fuso horário padrão do servidor. Os usos desta classe para alterar o fuso horário foram mostrados no exemplo a seguir:

Exemplo 3: defina o fuso horário usando a classe DatETimeZone

Crie um arquivo PHP com o seguinte script que mudará o valor do fuso horário duas vezes e imprima a data e a hora atuais com base no valor atual do fuso horário. A função Display () foi definida no script para imprimir o valor atual do fuso horário e a data e hora atuais com base no fuso horário. Foi chamado pela primeira vez para mostrar a saída com base no fuso horário padrão, que é 'UTC '. Foi chamado na segunda vez para mostrar a saída com base no fuso horário alterado, 'Ásia/dhaka'. Foi chamado da terceira vez para mostrar a saída com base no fuso horário alterado, que é 'Canadá/Atlântico'.

// Crie um objeto de data
$ date = new DateTime ();
Exibição da função ()

Data global de $;
$ timezone = $ DATE-> getTimeZone ();
// Imprima o fuso horário atual e o tempo de dados baseado no fuso horário
eco "o fuso horário atual é " . $ timegone-> getName ()."
";
eco "a data e hora atuais é" . $ data-> formato ('d-m-y h: i: s') . "
";

// Função de chamada para imprimir a saída com base no fuso horário padrão
mostrar();
// Mude o fuso horário para 'Ásia/Dhaka'
$ date-> setTimeZone (new DateTimeZone ('Asia/Dhaka'));
// Função de chamada para imprimir a saída com base no fuso horário alterado
mostrar();
// Mude o fuso horário para 'Canadá/Atlântico'
$ date-> setTimeZone (new DateTimeZone ('Canada/Atlantic'));
// Função de chamada para imprimir a saída com base no fuso horário alterado
mostrar();
?>


A saída a seguir aparecerá após a execução do script anterior:

Conclusão

Cinco maneiras diferentes de mudar o valor do fuso horário são mostradas neste tutorial. Se o usuário do PHP não tiver permissão para alterar o PHP.ini ou .Arquivo HTACCESS, então o usuário pode usar qualquer uma das funções internas discutidas neste tutorial para alterar o valor do fuso horário.