项目作者: joaopedrobaq

项目描述 :
Calculadora de Diferença de Datas em PHP
高级语言: PHP
项目地址: git://github.com/joaopedrobaq/DiffDatas.git
创建时间: 2020-06-15T02:28:47Z
项目社区:https://github.com/joaopedrobaq/DiffDatas

开源协议:

下载


DiffDatas

Calculadora de Diferença de Datas em PHP

Instalação

O pacote pode ser instalado pelo composer:

  1. composer require joaopedrobaq/diffdatas

Como Usar

No topo do arquivo, coloque:

  1. require_once __DIR__ . '/vendor/autoload.php';
  2. use DiffDatas\Datas;

Crie uma instância do objeto Datas e coloque as duas datas. O formato das datas deve ser “aaaa-mm-dd hh:mm:ss”, como no exemplo abaixo:

  1. $datas = new Datas;
  2. $datas->setData1("2020-12-24 20:30:00"); // 24 de Dezembro de 2020 às 20:30
  3. $datas->setData2("2020-06-15 12:00:00"); // 15 de Junho de 2020 às 12 horas

Caso queira, pode estabelecer qualquer uma das datas como o momento atual, usando o $datas->agora dentro do setData:

  1. $datas->setData1($datas->agora);

Após a inserção das datas, utilize o seguinte método para executar o cálculo de diferença:

  1. $datas->subDatas();

Agora que o cálculo foi feito, é possível retornar o resultado de várias maneiras:

Retornos

Para exemplificar, será usado para todos os casos abaixo o seguinte código:

  1. $datas = new Datas;
  2. $datas->setData1("2020-12-25 00:00:00"); // 25 de Dezembro de 2020 à meia-noite
  3. $datas->setData2("2020-06-15 12:00:00"); // 15 de Junho de 2020 às 12:00:00
  4. $datas->subDatas());

Ele irá informar quanto tempo falta para o Natal de 2020, contando a partir de 15 de junho de 2020.

Array com Diferença

Se deseja retornar um array associativo com a diferença, use:

  1. $resultado = $datas->arrayDiff();
  2. print_r($resultado);
  3. // Retorna
  4. Array
  5. (
  6. [anos] => 0
  7. [meses] => 6
  8. [dias] => 9
  9. [horas] => 12
  10. [minutos] => 0
  11. [segundos] => 0
  12. )

Ou seja, faltam 6 meses, 9 dias e 12 horas para o Natal.

Escrever diferença Simples

Caso queira escrever a maior medida de tempo, pode usar o método escreverSimples()

  1. $resultado = $datas->escreverSimples();
  2. echo $resultado;
  3. // Retorna
  4. 6 meses

Escrever diferença por extenso

Para escrever por extenso, use o método escreverExtenso()

  1. $resultado = $datas->escreverExtenso();
  2. echo $resultado;
  3. // Retorna
  4. 6 meses, 9 dias e 12 horas

Escrever data no futuro

É possível também escrever por extenso uma data no futuro de maneira que use palavras como Hoje, Amanhã, Dia da semana (caso seja na semana seguinte) ou apenas a data numeral. Para isso, é necessário apenas informar a Data1 e realizar a operação. Depois, use o método escreverFuturo($as). O argumento $as deve ser um boolean que define se a string retornada deve conter a palavra “às” entre o dia e a hora, como no exemplo abaixo:

  1. // A data usada como referência é o momento atual, que nesse exemplo é 15 de junho de 2020
  2. $datas = new Datas;
  3. $datas->setData1("2020-06-15 20:00:00"); // 15 de junho de 2020 às 20 hrs
  4. echo($datas->escreverFuturo(false));
  5. // Retorna
  6. Hoje 20:00
  7. echo($datas->escreverFuturo()); // O valor padrão é false
  8. // Retorna
  9. Hoje 20:00
  10. echo($datas->escreverFuturo(true));
  11. // Retorna
  12. Hoje às 20:00

Observe que não é necessário fazer o cálculo subDatas(), pois o próprio método já o faz.
Mais exemplos:

  1. $datas = new Datas;
  2. $datas->setData1("2020-06-16 14:00:00"); // 16 de junho de 2020 às 14 hrs
  3. echo($datas->escreverFuturo());
  4. // Retorna
  5. Amanhã 14:00
  6. $datas->setData1("2020-06-18 08:00:00"); // 16 de junho de 2020 às 14 hrs
  7. echo($datas->escreverFuturo(false));
  8. // Retorna
  9. Quinta 08:00
  10. $datas->setData1("2020-06-25 18:30:00"); // 16 de junho de 2020 às 14 hrs
  11. echo($datas->escreverFuturo(true));
  12. // Retorna
  13. 25/06 às 18:30

Contribuições

Caso queira contribuir para o projeto, crie uma issue para que possamos discutir o bug ou possível adição ao repositório.

License

MIT License - http://www.opensource.org/licenses/mit-license.php