joaopedrobaq/diffdatas

日期差异计算器,用PT-br编写

v1.0.0 2020-06-17 06:47 UTC

This package is auto-updated.

Last update: 2024-09-17 15:49:22 UTC


README

PHP日期差异计算器

安装

此包可以通过composer安装

composer require joaopedrobaq/diffdatas

如何使用

在文件顶部放置

require_once __DIR__ . '/vendor/autoload.php';

use DiffDatas\Datas;

创建一个名为Datas的对象实例,并放置两个日期。日期格式应为"aaaa-mm-dd hh:mm:ss",如下例所示

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

如果您想将其中一个日期设为当前时间,可以在setData中使用$datas->agora

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

在插入日期后,使用以下方法执行差异计算

$datas->subDatas();

计算完成后,可以以多种方式返回结果

返回值

以下代码将用于以下所有情况作为示例

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

它将计算从2020年6月15日开始到2020年12月25日之间还有多少时间。

带有差异的数组

如果您想返回一个包含差异的关联数组,请使用

$resultado = $datas->arrayDiff();
print_r($resultado);

// Retorna

Array
(
    [anos] => 0
    [meses] => 6
    [dias] => 9
    [horas] => 12
    [minutos] => 0
    [segundos] => 0
)

也就是说,距离圣诞节还有6个月,9天和12小时。

简单写差异

如果您想写出最大的时间单位,可以使用escreverSimples()方法

$resultado = $datas->escreverSimples();
echo $resultado;

// Retorna
6 meses

详细写差异

要详细写出,请使用escreverExtenso()方法

$resultado = $datas->escreverExtenso();
echo $resultado;

// Retorna
6 meses, 9 dias e 12 horas

写未来的日期

您还可以详细写出未来的日期,使用如“今天”,“明天”,“星期X”(如果是在下周)或仅日期数字。要实现这一点,只需要提供Data1并执行操作。然后,使用escreverFuturo($as)方法。参数$as应该是一个boolean,它定义了返回的字符串是否应在日期和小时之间包含“às”,如下例所示

// A data usada como referência é o momento atual, que nesse exemplo é 15 de junho de 2020

$datas = new Datas;
$datas->setData1("2020-06-15 20:00:00"); // 15 de junho de 2020 às 20 hrs
echo($datas->escreverFuturo(false));

// Retorna
Hoje 20:00

echo($datas->escreverFuturo()); // O valor padrão é false

// Retorna
Hoje 20:00

echo($datas->escreverFuturo(true));

// Retorna
Hoje às 20:00

请注意,不需要执行subDatas()计算,因为该方法已经执行了。更多示例

$datas = new Datas;
$datas->setData1("2020-06-16 14:00:00"); // 16 de junho de 2020 às 14 hrs
echo($datas->escreverFuturo());

// Retorna
Amanhã 14:00

$datas->setData1("2020-06-18 08:00:00"); // 16 de junho de 2020 às 14 hrs
echo($datas->escreverFuturo(false));

// Retorna
Quinta 08:00

$datas->setData1("2020-06-25 18:30:00"); // 16 de junho de 2020 às 14 hrs
echo($datas->escreverFuturo(true));

// Retorna
25/06 às 18:30

贡献

如果您想为此项目做出贡献,请创建一个问题,以便我们可以讨论错误或可能的仓库添加。

许可证

MIT许可证 - https://open-source.org.cn/licenses/mit-license.php