bayfrontmedia/php-time-helpers

提供有用时间相关函数的辅助类。

v2.0.0 2023-01-26 17:10 UTC

This package is auto-updated.

Last update: 2024-08-26 20:53:36 UTC


README

提供有用时间相关函数的辅助类。

许可

本项目为开源项目,并遵循MIT 许可协议

作者

Bayfront Media

需求

  • PHP ^8.0

安装

composer require bayfrontmedia/php-time-helpers

使用

getReadTime

描述

根据每分钟阅读给定数量的单词(WPM)来获取阅读内容的估计分钟数。

参数

  • $content (字符串)
  • $wpm = 180 (整数)

返回值

  • (整数)

示例

use Bayfront\TimeHelpers\Time;

$content = 'This is a string of content.';

echo Time::getReadTime($content);

getDateTime

描述

返回给定时间戳的日期时间,或当前时间(默认)。

参数

  • $timestamp = NULL (整数|null)

返回值

  • (字符串)

示例

use Bayfront\TimeHelpers\Time;

echo Time::getDateTime();

isLeapYear

描述

检查给定年份是否为闰年,默认使用当前年份。

参数

  • $year = NULL (整数|null): 四位数字年份,PHP date('Y') 格式

返回值

  • (布尔值)

示例

use Bayfront\TimeHelpers\Time;

if (Time::isLeapYear()) {
    // Do something
}

humanArray

描述

以数组形式返回人类时间。

注意:由于某些月份和年份的长度存在差异(例如:闰年),这些时间单位的时间计算是近似的(每月30天,每年365天)。

参数

  • $time_start (整数): 开始时间的时间戳
  • $time_end (整数): 结束时间的时间戳
  • $limit = 'year' (字符串): 要计算的时间持续限制
  • $language = NULL (数组|null): 要返回的自定义语言

有效的 $limit

  • 小时
  • 分钟

传递一个 $language 数组,您可以将此方法返回的单词翻译成其他语言。数组的键必须与默认数组匹配,默认数组如下

$language = [
    'year' => 'year',
    'years' => 'years',
    'month' => 'month',
    'months' => 'months',
    'week' => 'week',
    'weeks' => 'weeks',
    'day' => 'day',
    'days' => 'days',
    'hour' => 'hour',
    'hours' => 'hours',
    'minute' => 'minute',
    'minutes' => 'minutes',
    'second' => 'second',
    'seconds' => 'seconds',
    'past' => 'ago',
    'present' => 'just now',
    'future' => 'to go'
];

返回值

  • (数组)

示例

use Bayfront\TimeHelpers\Time;

$start = time();
$end = time() + 51001;

print_r(Time::humanArray($start, $end, 'minute'));

human

描述

以字符串形式返回人类时间。

有关更多信息,请参阅humanArray

参数

  • $time_start (整数): 开始时间的时间戳
  • $time_end (整数): 结束时间的时间戳
  • $limit = 'year' (字符串): 要计算的时间持续限制
  • $language = NULL (数组| null): 要返回的自定义语言

返回值

  • (字符串)

示例

use Bayfront\TimeHelpers\Time;

$start = time();
$end = time() + 51001;

echo Time::human($start, $end);

isTimezone

描述

检查字符串是否是有效的时区标识符。

见:https://php.ac.cn/manual/en/timezones.php

参数

  • $timezone (字符串)

返回值

  • (布尔值)

示例

use Bayfront\TimeHelpers\Time;

if (Time::isTimezone('America/New_York')) {
    // Do something
}

isFormat

描述

检查值是否是给定的 dateTime 格式。

见:https://php.ac.cn/manual/en/function.date.php

参数

  • $date (字符串)
  • $format (字符串): 任何有效的日期/时间格式
  • $strict = 'true' (布尔值)

返回值

  • (布尔值)

示例

use Bayfront\TimeHelpers\Time;

$date = '2020-07-18';

if (Time::isFormat($date, 'Y-m-d')) {
    // Do something
}

inPast

描述

检查日期/时间是否在过去。

见:https://php.ac.cn/manual/en/datetime.formats.php

参数

  • $date (字符串): 任何有效的日期/时间格式

返回值

  • (布尔值)

示例

use Bayfront\TimeHelpers\Time;

if (Time::inPast('last Tuesday')) {
    // Do something
}

inFuture

描述

检查日期/时间是否在未来。

见:https://php.ac.cn/manual/en/datetime.formats.php

参数

  • $date (字符串): 任何有效的日期/时间格式

返回值

  • (布尔值)

示例

use Bayfront\TimeHelpers\Time;

if (Time::inFuture('2050-12-31')) {
    // Do something
}

isBefore

描述

检查日期/时间是否在给定日期/时间之前。

见:https://php.ac.cn/manual/en/datetime.formats.php

参数

  • $date (字符串): 任何有效的日期/时间格式
  • $before (字符串): 任何有效的日期/时间格式

返回值

  • (布尔值)

示例

use Bayfront\TimeHelpers\Time;

if (Time::isBefore('today', '2050-12-31')) {
    // Do something
}

isAfter

描述

检查日期/时间是否在给定日期/时间之后。

见:https://php.ac.cn/manual/en/datetime.formats.php

参数

  • $date (字符串): 任何有效的日期/时间格式
  • $after (字符串): 任何有效的日期/时间格式

返回值

  • (布尔值)

示例

use Bayfront\TimeHelpers\Time;

if (Time::isAfter('today', '2050-12-31')) {
    // Do something
}

stopwatch

描述

返回回调执行所需的时间(以秒为单位)。

参数

  • $callable (回调)
  • $times = 1 (整数): 迭代回调的次数
  • $decimals = 5 (整数): 四舍五入到的十进制位数

返回值

  • (浮点数)

示例

use Bayfront\TimeHelpers\Time;

$elapsed = Time::stopwatch(function() {

    sleep(2);

}, 2);