tmihalicka/php-duration

此包已被弃用,不再维护。作者建议使用 monadial/php-duration 包。

PHP 时间长度类型

1.0 2023-06-29 15:48 UTC

README

缺少PHP TimeUnit和Duration库

安装

composer require monadial/php-duration

有限时长

The FiniteDuration 类表示时间的有限长度。它提供了对时长进行操作和转换的功能,例如加法、减法、乘法、除法和转换为不同的时间单位。

工厂方法

  • fromTimeUnit(int $length, TimeUnit $unit): FiniteDuration: 从指定的长度和时间单位创建一个新的 FiniteDuration 实例。

    \Monadial\Duration\FiniteDuration::fromTimeUnit(1, TimeUnit::SECONDS); // create 1 second duration
  • fromNanos(int $nanos): FiniteDuration: 从指定的纳秒时长创建一个新的 FiniteDuration 实例。

    \Monadial\Duration\FiniteDuration::fromNanos(1000); // create 1000 nanoseconds duration
  • fromString(string $duration): FiniteDuration: 从时长的字符串表示形式创建一个新的 FiniteDuration 实例。

    \Monadial\Duration\FiniteDuration::fromTimeUnit('1 minutes'); // create 1 minute duration

时长转换方法

  • toNanos(): int: 将时长转换为纳秒。
  • toMicros(): int: 将时长转换为微秒。
  • toMillis(): int: 将时长转换为毫秒。
  • toSeconds(): int: 将时长转换为秒。
  • toMinutes(): int: 将时长转换为分钟。
  • toHours(): int: 将时长转换为小时。
  • toDays(): int: 将时长转换为天。
  • toUnit(TimeUnit $unit): float: 将时长转换为指定的时间单位。

算术操作

  • add(Duration $other): FiniteDuration: 将另一个时长添加到当前时长。
  • subtract(Duration $other): FiniteDuration: 从当前时长中减去另一个时长。
  • multiply(int $factor): FiniteDuration: 将时长乘以一个因子。
  • division(int $divisor): FiniteDuration: 将时长除以一个除数。

其他方法

  • isFinite(): bool: 检查时长是否有限。
  • equals(Duration $other): bool: 检查当前时长是否等于另一个时长。
  • toCoarsest(): Duration: 将时长转换为最粗略的单位。
  • asDateTime(): DateTimeImmutable: 将时长转换为 DateTimeImmutable 对象。

异常

FiniteDuration 类可能会抛出以下异常

  • FiniteDurationBoundary: 当时长超出时间单位允许的最大或最小值时抛出。
  • NanosecondsAreNotConvertibleToDateTime: 当尝试将纳秒时长转换为 DateTimeImmutable 对象时抛出(纳秒不能表示为有效的日期和时间)。
  • UnableToConvertToDateTime: 当时长由于限制或错误无法转换为 DateTimeImmutable 对象时抛出。

请注意,这只是一个对 FiniteDuration 类及其可用方法的概述。有关每个方法和其使用的详细信息,请参阅类实现和文档。