damenjo / rutin
提供优秀的PHP API扩展,用于DateTime
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文档。
我们还有可以帮您添加或减去days
、month
、year
等的方法。您可以使用以下列表中的实用工具,具体描述如下。
注意
现在我们还提供了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
将导致错误,所以请注意,try
和catch
块对于处理代码中的错误非常重要。以下是一些快速步骤,让我们看看这段代码:
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