PHP时间处理类,包含了常见的日期和时间操作方法。

<?php

class TimeUtils
{
    /**
     * 获取当前时间戳(秒)
     *
     * @return int 当前时间的Unix时间戳(秒)
     */
    public static function getCurrentTimestamp(): int
    {
        return time();
    }

    /**
     * 获取当前时间戳(毫秒)
     *
     * @return float 当前时间的Unix时间戳(毫秒)
     */
    public static function getCurrentTimestampInMilliseconds(): float
    {
        return microtime(true) * 1000;
    }

    /**
     * 格式化时间戳为指定格式的日期时间字符串
     *
     * @param int    $timestamp   时间戳(秒)
     * @param string $format      日期时间格式,如 'Y-m-d H:i:s' 或 'd/m/Y'
     * @return string             格式化后的日期时间字符串
     */
    public static function formatTimestamp(int $timestamp, string $format = 'Y-m-d H:i:s'): string
    {
        return date($format, $timestamp);
    }

    /**
     * 将日期时间字符串解析为时间戳
     *
     * @param string $dateTimeStr 日期时间字符串,如 '2023-04-5 18:30:45'
     * @param string $format      日期时间字符串的格式,如 'Y-m-d H:i:s'
     * @return int                解析后的时间戳(秒)
     * @throws Exception          如果无法解析日期时间字符串,抛出异常
     */
    public static function parseDateTimeToTimestamp(string $dateTimeStr, string $format = 'Y-m-d H:i:s'): int
    {
        $timestamp = strtotime($dateTimeStr);

        if ($timestamp === false) {
            throw new Exception("Failed to parse datetime string: '{$dateTimeStr}' with format '{$format}'");
        }

        return $timestamp;
    }

    /**
     * 计算两个时间戳之间的差值(单位:秒)
     *
     * @param int $timestamp1 第一个时间戳
     * @param int $timestamp2 第二个时间戳
     * @return int            两个时间戳之间的时间差(秒)
     */
    public static function calculateTimeDifference(int $timestamp1, int $timestamp2): int
    {
        return abs($timestamp1 - $timestamp2);
    }

    /**
     * 计算两个时间戳之间的差值(单位:天)
     *
     * @param int $timestamp1 第一个时间戳
     * @param int $timestamp2 第二个时间戳
     * @return float          两个时间戳之间的时间差(天),保留两位小数
     */
    public static function calculateTimeDifferenceInDays(int $timestamp1, int $timestamp2): float
    {
        return self::calculateTimeDifference($timestamp1, $timestamp2) / (60 * 60 * 24);
    }
}

// 示例用法:
$nowTimestamp = TimeUtils::getCurrentTimestamp();
echo "Current timestamp: {$nowTimestamp}\n";

$formattedNow = TimeUtils::formatTimestamp($nowTimestamp, 'd/m/Y');
echo "Formatted current time: {$formattedNow}\n";

$parsedTimestamp = TimeUtils::parseDateTimeToTimestamp('2023-07-9 15:45:00');
echo "Parsed timestamp: {$parsedTimestamp}\n";

$timeDifference = TimeUtils::calculateTimeDifference($nowTimestamp, $parsedTimestamp);
echo "Time difference in seconds: {$timeDifference}\n";

$timeDifferenceInDays = TimeUtils::calculateTimeDifferenceInDays($nowTimestamp, $parsedTimestamp);
echo "Time difference in days: {$timeDifferenceInDays}\n";
本文链接地址:https://blog.yunshang6.com/103.html 转载请注明来源
1、网站名称:云上资源网
2、官方网址:https://blog.yunshang6.com
3、本站所有技术文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台
4、本网站的文章部分内容可能来源于网络,仅供大家学习与参考,如有侵权,请联系站长进行删除处理。
5、本站一切资源不代表本站立场,并不代表本站赞同其观点和对其真实性负责。
6、本站一律禁止以任何方式发布或转载任何违法的相关信息,访客发现请向站长举报
7、本站资源大多存储在云盘,如发现链接失效,请联系我们我们会第一时间更新。