Uso da classe PHP DateInterval

Uso da classe PHP DateInterval

A classe PHP DateInterval calcula a diferença entre dois objetos de data/hora. Às vezes, é necessário encontrar a diferença entre dois dias, meses, anos, horas, minutos e segundos para fins de programação. O objeto desta classe armazena a quantidade fixa de tempo que pode ser lida usando a função format () usando diferentes parâmetros de formato. Diferentes usos da classe DateInterval no PHP são mostrados neste tutorial.

Diferentes parâmetros de formato do formato () função

Os propósitos de diferentes caracteres de formato usados ​​na função format () foram descritos nesta parte do tutorial.

Caráter formato Propósito
%d Imprime o dia da data sem liderar zero

Exemplo: 1, 2, 30, etc.

%D Imprime o dia da data com um zero líder

Exemplo: 2, 05, 30, etc.

%m Imprime o número do mês da data sem um zero líder

Exemplo: 1, 6, 12, etc.

%M Imprime o número do mês da data com um zero líder

Exemplo: 01, 06, 12, etc.

%y Imprime o ano de 2 dígitos

Exemplo: 21, 22, 23, etc.

%Y Imprime o ano de 4 dígitos

Exemplo: 2021, 2022, 2023, etc.

%h Imprime a hora sem liderar zero

Exemplo: 1, 5, 11, etc.

%H Imprime a hora com zero liderando

Exemplo: 01, 05, 11, etc.

%eu Imprime o minuto sem liderar zero

Exemplo: 1, 9, 59, etc.

%EU Imprime o minuto com zero líder

Exemplo: 01, 05, 25, etc.

%s Imprime o segundo sem liderar zero

Exemplo: 1, 9, 59, etc.

%S Imprime o segundo com zero líder

Exemplo: 01, 09, 59, etc.

%f Imprime o microssegundo sem liderar zero

Exemplo: 7845, 562312, 235634, etc.

%F Imprime o microssegundo com 6 dígitos e liderando zero

Exemplo: 007845, 062312, 235634, etc.

Os usos de diferentes métodos de classe DateInterval são discutidos na próxima parte deste tutorial.

Exemplo 1: Uso da classe DateInterval para o dia, mês e ano

Crie um arquivo PHP com o seguinte script que mostra o uso da definição de diferentes valores de intervalo usando a classe DateInterval. O intervalo deve começar com o personagem, 'P'. O personagem 'y' é usado para intervalo de ano, 'm' é usado para intervalo de mês e 'd' é usado para intervalo diário. No script, a primeira classe DATEInterval definirá intervalos de 10 dias, a segunda classe DateInterval definirá 5 meses e 10 dias de intervalos e a terceira classe DateInterval definirá 2 anos, 5 meses e 10 dias de intervalos.

// Defina o intervalo em dias
$ IVAL = new DateInterval ('P10D');
// Imprima o valor do intervalo
eco "o intervalo é", $ IVAL-> formato ('%d dias.')."
";
// Defina o intervalo em meses e dias
$ IVAL = new DateInterval ('P5M10D');
// Imprima o valor do intervalo em meses e dias
eco "o intervalo é", $ IVAL-> formato (' %m meses e %d dias.'), "
";
// Defina o intervalo em anos, meses e dias
$ IVAL = new DateInterval ('P2Y5M10D');
// Imprima o valor do intervalo em anos, meses e dias com os principais zeros
eco "o intervalo é", $ IVAL-> formato (' %y anos, %m meses e %d dias.'), "
";
// imprime o valor do intervalo em anos, meses e dias sem liderar zeros
eco "o intervalo é", $ IVAL-> formato (' %y anos, %m meses e %d dias.'), "
";
?>


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

Exemplo 2: Uso da classe DateInterval com date_interval_format () função

A função date_interval_format () imprime o valor do intervalo de data com a sequência de formatação. Esta função leva o objeto de intervalo no primeiro argumento e a sequência do formato no segundo argumento. Crie um arquivo php com o seguinte script em que foi mostrado o uso da função date_interval_format ():

// Defina o intervalo em anos, meses e dias
$ IVAL = new DateInterval ('P10Y6M15D');
// Defina o formato para dias
$ format = "%d";
// Imprima o valor do intervalo em dias
eco "o intervalo é".DATE_INTERVAL_FORMAT ($ IVAL, $ formato)." dias.
";
// Defina o formato por dias e meses
$ formato = " %m meses e %dias.";
// Imprima o valor do intervalo em meses e dias
eco "o intervalo é".DATE_INTERVAL_FORMAT ($ IVAL, $ formato)."
";
// Defina o formato para dias
$ formato = " %y anos, %m meses e %dias.";
// Imprima o valor do intervalo em anos, meses e dias
eco "o intervalo é".DATE_INTERVAL_FORMAT ($ IVAL, $ formato)."
";
?>


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

Exemplo 3: Uso da classe DateInterval para a hora, minuto e segundo

O personagem 'T' é usado após o personagem 'P' para definir o intervalo no tempo. Crie um arquivo PHP com o seguinte script em que o intervalo de tempo é definido usando a classe DateInterval:

// Defina o intervalo em segundos
$ IVAL = new DateInterval ('PT30s');
// Defina a formatação
$ format = "%s segundos.";
// imprima o valor do intervalo em segundos
eco "o intervalo é". DATE_INTERVAL_FORMAT ($ IVAL, $ formato). "
";
// Defina o intervalo em segundos
$ IVAL = new DateInterval ('PT15M30S');
// Defina a formatação
$ format = " %i minutos e %s segundos.";
// Imprima o valor do intervalo em minutos e segundos
eco "o intervalo é". DATE_INTERVAL_FORMAT ($ IVAL, $ formato). "
";
// Defina o intervalo em segundos
$ IVAL = new DateInterval ('PT5H15M30S');
// Defina a formatação
$ format = " %h horas, %i minutos e %s segundos.";
// Imprima o valor do intervalo em horas, minutos e segundos
eco "o intervalo é". DATE_INTERVAL_FORMAT ($ IVAL, $ formato). "
";
?>


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

Exemplo 4: Uso da classe DateInterval com a função createfromDateString ()

A função createfromDateString () é usada para definir o intervalo de data e hora de diferentes maneiras. Crie um arquivo PHP com o seguinte script, onde o intervalo de data e hora foi definido de várias maneiras usando a função createfromDateString ():

// Defina o intervalo em dias
$ IVAL = DATEInterval :: createFromDateString ('20 dias ');
eco "o intervalo é", $ IVAL-> formato ('%d dias'), "
";
// Defina o intervalo em semanas
$ IVAL = DATEInterval :: createFromDateString ('4 semanas');
eco "o intervalo é", $ IVAL-> formato ('%d dias'), "
";
// Defina o intervalo em meses
$ IVAL = DATEInterval :: createFromDateString ('3 meses');
eco "o intervalo é", $ IVAL-> formato ('%m meses'), "
";
// Defina o intervalo em anos e dias
$ IVAL = DATEInterval :: CreateFromDateString ('5 anos + 15 dias');
eco "o intervalo é", $ IVAL-> formato (' %y anos %d dias'), "
";
// Defina o intervalo em semanas, dias, horas e minutos por soma
$ IVAL = DATEInterval :: createFromDateString ('2 semanas + 15 dias + 24 horas + 60 minutos');
eco "o intervalo é", $ IVAL-> formato (' %d dias, %h horas e %em minutos'), "
";
// Defina o intervalo em dias por subtração
$ IVAL = DATEINTVAL :: createFromDateString ('30 dias - 15 dias ');
eco "o intervalo é", $ IVAL-> formato ('%d dias'), "
";
?>


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

Conclusão

As diferentes maneiras de definir o intervalo de data e hora usando o valor da string no momento da criação do objeto da classe DateInterval ou usando CreateFromDateString () foram mostradas neste tutorial. Os usos da classe DateInterval foram discutidos para os novos usuários de PHP entenderem melhor.