twipsi/chronos

提供了一种简化的接口来操作时间

1.0.0 2022-10-27 10:23 UTC

This package is auto-updated.

Last update: 2024-09-29 06:09:11 UTC


README

简单的操作时间类

安装

composer require twipsi/chronos

初始化类

您可以设置初始日期为DateTime对象、Chronos实例、有效的日期字符串或时间戳。

Chronos::date(new Chronos)...
Chronos::date(new DateTime)...
Chronos::date('2022-05-05 10:10:10')...
Chronos::date(1664524279)...

new Chronos(new DateTime)

或者直接获取当前日期时间。

Chronos::date()...

DateTime选项

在设置初始日期后,您可以流畅地指定每个选项。

Chronos::date($date)
  ->setDateTimeFormat("Y-m-d H:i:s")
  ->setDateFormat("Y-m-d")
  ->setTimeFormat("H:i:s")
  ->setTimezone("UTC")

以字符串形式检索日期时间

您有多种方法可以以字符串形式检索日期时间。

 Chronos::date($date)...
     ->getDateObject()
     ->stamp()
     ->getDateTime()
     ->getDate()
     ->getTime()
     ->getHour()
     ->getMinute()
     ->getSeconds()
     ->getDayName()
     ->getDayShortName()
     ->getDayNumber()
     ->getWeekNumber()
     ->getMonthName()
     ->getShortMonthName()
     ->getMonthNumber()
     ->getYear()

操作日期时间

初始方法

在将日期时间作为字符串检索之前,您有多种方法来操作初始时间。

 Chronos::date($date)->addDays()->getDateTime();
 Chronos::date($date)->addMinutes()->getDateTime();
 Chronos::date($date)->addSeconds()->getDateTime();
 Chronos::date($date)->subDays()->getDateTime();
 Chronos::date($date)->subMinutes()->getDateTime();
 Chronos::date($date)->subSeconds()->getDateTime();

链式方法

您也可以流畅地链式调用方法。

 Chronos::date($date)->addDays(40)->addMinutes(1)->subSeconds(20)->getDateTime();

穿越时间

设置新的日期时间

您可以将另一个日期时间设置为DateTime对象、有效的日期字符串或时间戳来处理时间间隔。

Chronos::date()->travel(new DateTime)...
Chronos::date()->travel('2022-05-05 10:10:10')...
Chronos::date()->travel(1664524279)...

检索差异

您有多种方法可以以字符串形式检索差异。

Chronos::date()->travel('2022-05-05 10:10:10')
    ->daysPassed() // This will return 0 if travel date is in the future.
    ->differenceInDays() // This will return negative days if travel is in the past.
    ->hoursPassed()
    ->differenceInHours()
    ->minutesPassed()
    ->differenceInMinutes()
    ->secondsPassed()
    ->differenceInSeconds()

您还可以快速检查我们是在过去还是未来。

Chronos::date()->travel('2022-05-05 10:10:10')
   ->isInFuture()
   ->isInPast()