damenjo/rutin

提供优秀的PHP API扩展,用于DateTime

1.0.19 2023-08-06 10:51 UTC

This package is auto-updated.

Last update: 2024-09-06 13:02:12 UTC


README

安装列表

您可以通过以下方式安装此包

指南

您只需使用我们的now()方法就可以获取当前日期和时间。下面是示例:

use Damenjo\Rutin\Main\Rutin;
// 2023-08-03 20:39:45
$now = Rutin::now()->format();

默认情况下,我们的包将识别这种DateTime格式为Y-m-d H:i:s。如果您需要定义特定的时区,可以直接将第一个参数设置为now()方法,如下所示:

$now = Rutin::now("Asia/Jakarta")->format();

如果您需要指定另一种DateTime格式,也可以为format()方法的第一个参数设置。以下是实现方式:

// 2023-08-03
$date = Rutin::now("Asia/Jakarta")->format("Y-m-d");
// 20:39:45
$time = Rutin::now("Asia/Jakarta")->format("H:i:s");
// 2023
$year = Rutin::now("Asia/Jakarta")->format("Y");

注意:所有DateTime关键字格式均参照PHP DateTime Format文档。

我们还有可以帮您添加或减去daysmonthyear等的方法。您可以使用以下列表中的实用工具,具体描述如下。

注意

现在我们还提供了add(string $dateElement, int $numberOfDateElement = 1)skip(string $dateElement, int $numberOfDateElement = 1),使您的生活更加便捷。我们将在现有代码下方描述示例,请花点时间查看^_^

以下是使用上面列出所有方法的几个示例。

// 2023-08-04
$rutin = Rutin::now()->add("day",1)->format("Y-m-d");

// 2023-08-03
$rutinNow = Rutin::now()->format("Y-m-d");

// 2023-08-04
$rutinPlusOneDay = Rutin::now()->addDay()->format("Y-m-d");

// 2023-08-05
$rutinPlusTwoDay = Rutin::now()->addDays(2)->format("Y-m-d");

// 2023-08-03
$rutinNull = Rutin::now()->addDays(null ?? 0)->format("Y-m-d");

警告

null或任何类型除非是number将导致错误,所以请注意,trycatch块对于处理代码中的错误非常重要。以下是一些快速步骤,让我们看看这段代码:

try {
    // Invalid argument data type
    $rutinNull = Rutin::now()->addDays("")->format("Y-m-d");
} catch (\Damenjo\Rutin\Exceptions\RutinException $e) {
    // We recommend you to use this catch blocks too
    echo $e->ruinMessage();
} catch (\TypeError $e) {
    // Do whatever you want inside this block
}

另外,如果您有像根据某些条件添加您的一天这样的场景,您可以使用addDayIf()

$prediction = true;
$rutinPlusOneDayIf = Rutin::now()->addDayIf(fn() => $prediction)->format("Y-m-d");

当然,有一种场景需要您在add()方法中使用条件。现在,使用我们全新的while()方法就可以做到这一点。

$prediction = true;
Rutin::now()->while(fn() => $prediction)->add("month",3)->format("Y-m-d");

由于此方法是在像addDay()addMonths()等添加或减去方法之前调用的,所以这个酷炫的while()方法将确定添加或减去功能是否会影响当前的DateTime

警告

while()只会影响添加或减去日期时间方法,不会影响其他像format()这样的方法。

许可证MIT