monadial/php-duration

PHP 时间长度类型

1.0 2023-06-29 15:48 UTC

README

缺少 PHP TimeUnit 和 Duration 库

安装

composer require monadial/php-duration

有限时间长度

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 类及其可用方法的概述。有关每个方法及其用法的详细信息,请参阅类实现和文档。