php 自动把秒转换成分,时,天,周,月,年...

10 篇文章 0 订阅
9 篇文章 0 订阅
<?php

class Calendar
{


    /**
     * 一分钟的秒数
     */
    const TIME_MINUTE = 60;

    /**
     * 一小时的秒数
     */
    const TIME_HOURS = 3600;

    /**
     * 一天的秒数
     */
    const TIME_DAY = 3600 * 24;

    /**
     * 一周的秒数
     */
    const TIME_WEEK = 3600 * 24 * 7;

    /**
     * 一月的秒数
     */
    const TIME_MONTH = 3600 * 24 * 30;

    /**
     * 一年(平年)的秒数
     */
    const TIME_YEAR = 3600 * 24 * 365;

    /**
     * 一年(闰年年)的秒数
     */
    const TIME_YEAR_INTERCALARY = 3600 * 24 * 366;

    /**
     * 时间=》对应名称
     */
    const TIME_NAMES = [
        0 => '秒',
        self::TIME_MINUTE => '分钟',
        self::TIME_HOURS => '小时',
        self::TIME_DAY => '天',
        self::TIME_WEEK => '周',
        self::TIME_MONTH => '月',
        self::TIME_YEAR => '年',
    ];

    /**
     * 格式化秒自动到 分或者时 或者 天 等....
     * @param int $second
     * @param string[] $unitString 可以自己定义
     * @return string
     */
    public static function formatSecond($second = 0, $unitString = self::TIME_NAMES)
    {
        ksort($unitString);

        if ($second < self::TIME_MINUTE) return $second . $unitString[0];

        krsort($unitString);

        foreach ($unitString as $time => $unitName) {
            if ($time <= 0) continue;

            $result = floor($second / $time);

            if ($result >= 1) return $result . $unitName;
        }

        return null;
    }

 
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值