php获取当日,明日,昨日,本月,下月,今年,本周开始和结束时间或者时间戳

博客涉及PHP与时间相关内容,但具体信息缺失。推测围绕PHP中时间的处理、应用等方面展开,在信息技术领域,PHP常用于后端开发,时间处理在很多业务场景中至关重要。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

<?php
// +----------------------------------------------------------------------
// | Created by PHPstorm: [ JRK丶Admin ]
// +----------------------------------------------------------------------
// | Copyright (c) 2019~2022 [LuckyHHY] All rights reserved.
// +----------------------------------------------------------------------
// | SiteUrl: http://www.luckyhhy.cn
// +----------------------------------------------------------------------
// | Author: LuckyHhy <jackhhy520@qq.com>
// +----------------------------------------------------------------------
// | Date: 2020/11/17 0017
// +----------------------------------------------------------------------
// | Description: 时间service
// +----------------------------------------------------------------------

namespace app\admin\service;

class TimeService {


    /**
     * @param string $type
     * @param bool $date
     * @param string $format
     * @return array
     * @author: Hhy <jackhhy520@qq.com>
     * @describe:获取开始和结束时间
     */
    public static function TimeBeginEnd($type = "today", $date = true, $format = "Y-m-d H:i:s") {
        switch (strtolower($type)) {
            case "tomorrow":  //明天的开始和结束时间
                $arr = [self::BeginTomorrow($date, $format), self::EndTomorrow($date, $format)];
                break;
            case "yesterday": //昨天的开始和结束时间
                $arr = [self::BeginYesterday($date, $format), self::EndYesterday($date, $format)];
                break;
            case "thisweek":  //本周的开始和结束时间 【开始时间周一,结束时间为周日】
                $arr = [self::BeginThisWeek($date, $format), self::EndThisWeek($date, $format)];
                break;
            case "thisweekr":  //本周的开始和结束时间【开始时间周日,结束时间为周六】
                $arr = [self::BeginThisWeekR($date, $format), self::EndThisWeekR($date, $format)];
                break;
            case "lastweek":  //上周的开始和结束时间
                $arr = [self::BeginLastWeek($date, $format), self::EndLastWeek($date, $format)];
                break;
            case "thismonth":  //本月的开始和结束时间
                $arr = [self::BeginThisMonth($date, $format), self::EndThisMonth($date, $format)];
                break;
            case "lastmonth":  //上月的开始和结束时间
                $arr = [self::BeginLastMonth($date, $format), self::EndLastMonth($date, $format)];
                break;
            case "thisseason": //本季度的开始和结束时间
                $arr = [self::BeginThisSeason($date, $format), self::EndThisSeason($date, $format)];
                break;
            case "lastseason":  //上季度的开始和结束时间
                $arr = [self::BeginLastSeason($date, $format), self::EndLastSeason($date, $format)];
                break;
            case "thisyear":  //今年的开始和结束时间
                $arr = [self::BeginThisYear($date, $format), self::EndThisYear($date, $format)];
                break;
            case "tomorrowyear": //明年的开始和结束时间
                $arr = [self::BeginTomorrowYear($date, $format), self::EndTomorrowYear($date, $format)];
                break;
            case "lastyear": //去年的开始和结束时间
                $arr = [self::BeginLastYear($date, $format), self::EndLastYear($date, $format)];
                break;
            default:   //今天的开始和结束时间
                $arr = [self::BeginToday($date, $format), self::EndToday($date, $format)];
                break;
        }
        return $arr;
    }


    /**
     * @param bool $date
     * @param string $format
     * @return false|int|string
     * @author: Hhy <jackhhy520@qq.com>
     * @describe:今日开始时间
     */
    public static function BeginToday($date = true, $format = "Y-m-d H:i:s") {
        $today = mktime(0, 0, 0, date('m'), date('d'), date('Y'));
        return $date ? date($format, $today) : $today;
    }


    /**
     * @param bool $date
     * @param string $format
     * @return false|int|string
     * @author: Hhy <jackhhy520@qq.com>
     * @describe:今日结束时间
     */
    public static function EndToday($date = true, $format = "Y-m-d H:i:s") {
        $today = mktime(0, 0, 0, date('m'), date('d') + 1, date('Y')) - 1;
        return $date ? date($format, $today) : $today;
    }


    /**
     * @param bool $date
     * @param string $format
     * @return false|int|string
     * @author: Hhy <jackhhy520@qq.com>
     * @describe:明日开始时间
     */
    public static function BeginTomorrow($date = true, $format = "Y-m-d H:i:s") {
        $Tomorrow = mktime(0, 0, 0, date('m'), date('d'), date('Y')) + 86400;
        return $date ? date($format, $Tomorrow) : $Tomorrow;
    }


    /**
     * @param bool $date
     * @param string $format
     * @return false|int|string
     * @author: Hhy <jackhhy520@qq.com>
     * @describe:明日结束时间
     */
    public static function EndTomorrow($date = true, $format = "Y-m-d H:i:s") {
        $Tomorrow = mktime(0, 0, 0, date('m'), date('d') + 1, date('Y')) + 86399;
        return $date ? date($format, $Tomorrow) : $Tomorrow;
    }


    /**
     * @param bool $date
     * @param string $format
     * @return false|int|string
     * @author: Hhy <jackhhy520@qq.com>
     * @describe:昨日开始时间
     */
    public static function BeginYesterday($date = true, $format = "Y-m-d H:i:s") {
        $Yesterday = mktime(0, 0, 0, date('m'), date('d') - 1, date('Y'));
        return $date ? date($format, $Yesterday) : $Yesterday;
    }


    /**
     * @param bool $date
     * @param string $format
     * @return false|int|string
     * @author: Hhy <jackhhy520@qq.com>
     * @describe:昨日结束时间
     */
    public static function EndYesterday($date = true, $format = "Y-m-d H:i:s") {
        $Yesterday = mktime(0, 0, 0, date('m'), date('d'), date('Y')) - 1;
        return $date ? date($format, $Yesterday) : $Yesterday;
    }


    /**
     * @param bool $date
     * @param string $format
     * @return false|int|string
     * @author: Hhy <jackhhy520@qq.com>
     * @describe:本周开始时间 【开始时间周一,结束时间为周日】
     */
    public static function BeginThisWeek($date = true, $format = "Y-m-d H:i:s") {
        $ThisWeek = strtotime("this week Monday", time());
        return $date ? date($format, $ThisWeek) : $ThisWeek;
    }


    /**
     * @param bool $date
     * @param string $format
     * @return false|int|string
     * @author: Hhy <jackhhy520@qq.com>
     * @describe:本周结束时间 【开始时间周一,结束时间为周日】
     */
    public static function EndThisWeek($date = true, $format = "Y-m-d H:i:s") {
        $ThisWeek = strtotime("this week Sunday", time()) + 86399;
        return $date ? date($format, $ThisWeek) : $ThisWeek;
    }


    /**
     * @param bool $date
     * @param string $format
     * @return false|int|string
     * @author: Hhy <jackhhy520@qq.com>
     * @describe:本周开始时间 【开始时间周日,结束时间为周六】
     */
    public static function BeginThisWeekR($date = true, $format = "Y-m-d H:i:s") {
        $ThisWeek = mktime(0, 0, 0, date("m"), date("d") - date("w") + 1, date("Y"));
        return $date ? date($format, $ThisWeek) : $ThisWeek;
    }


    /**
     * @param bool $date
     * @param string $format
     * @return false|int|string
     * @author: Hhy <jackhhy520@qq.com>
     * @describe:本周结束时间 【开始时间周日,结束时间为周六】
     */
    public static function EndThisWeekR($date = true, $format = "Y-m-d H:i:s") {
        $ThisWeek = mktime(0, 0, 0, date("m"), date("d") - date("w") + 7, date("Y"));
        return $date ? date($format, $ThisWeek) : $ThisWeek;
    }


    /**
     * @param bool $date
     * @param string $format
     * @return false|int|string
     * @author: Hhy <jackhhy520@qq.com>
     * @describe:上周开始时间
     */
    public static function BeginLastWeek($date = true, $format = "Y-m-d H:i:s") {
        $LastWeek = strtotime("last week Monday", time());
        return $date ? date($format, $LastWeek) : $LastWeek;
    }


    /**
     * @param bool $date
     * @param string $format
     * @return false|int|string
     * @author: Hhy <jackhhy520@qq.com>
     * @describe:上周结束时间
     */
    public static function EndLastWeek($date = true, $format = "Y-m-d H:i:s") {
        $LastWeek = strtotime("last week Sunday", time()) + 86399;
        return $date ? date($format, $LastWeek) : $LastWeek;
    }


    /**
     * @param bool $date
     * @param string $format
     * @return false|int|string
     * @author: Hhy <jackhhy520@qq.com>
     * @describe:这月开始时间
     */
    public static function BeginThisMonth($date = true, $format = "Y-m-d H:i:s") {
        $ThisMonth = mktime(0, 0, 0, date('m'), 1, date('Y'));
        return $date ? date($format, $ThisMonth) : $ThisMonth;
    }


    /**
     * @param bool $date
     * @param string $format
     * @return false|int|string
     * @author: Hhy <jackhhy520@qq.com>
     * @describe:这月结束时间
     */
    public static function EndThisMonth($date = true, $format = "Y-m-d H:i:s") {
        $ThisMonth = mktime(23, 59, 59, date('m'), date('t'), date('Y'));
        return $date ? date($format, $ThisMonth) : $ThisMonth;
    }


    /**
     * @param bool $date
     * @param string $format
     * @return false|int|string
     * @author: Hhy <jackhhy520@qq.com>
     * @describe:上月开始时间
     */
    public static function BeginLastMonth($date = true, $format = "Y-m-d H:i:s") {
        $LastMonth = mktime(0, 0, 0, date("m") - 1, 1, date("Y"));
        return $date ? date($format, $LastMonth) : $LastMonth;
    }


    /**
     * @param bool $date
     * @param string $format
     * @return false|int|string
     * @author: Hhy <jackhhy520@qq.com>
     * @describe:上月结束时间
     */
    public static function EndLastMonth($date = true, $format = "Y-m-d H:i:s") {
        $LastMonth = mktime(23, 59, 59, date("m"), 0, date("Y"));
        return $date ? date($format, $LastMonth) : $LastMonth;
    }


    /**
     * @param bool $date
     * @param string $format
     * @return false|int|string
     * @author: Hhy <jackhhy520@qq.com>
     * @describe:本季度开始时间
     */
    public static function BeginThisSeason($date = true, $format = "Y-m-d H:i:s") {
        $season = ceil((date('n')) / 3);
        $ThisSeason = mktime(0, 0, 0, $season * 3 - 3 + 1, 1, date('Y'));
        return $date ? date($format, $ThisSeason) : $ThisSeason;
    }


    /**
     * @param bool $date
     * @param string $format
     * @return false|int|string
     * @author: Hhy <jackhhy520@qq.com>
     * @describe:本季度结束时间
     */
    public static function EndThisSeason($date = true, $format = "Y-m-d H:i:s") {
        $season = ceil((date('n')) / 3);
        $ThisSeason = mktime(23, 59, 59, $season * 3, date('t', mktime(0, 0, 0, $season * 3, 1, date("Y"))), date('Y'));
        return $date ? date($format, $ThisSeason) : $ThisSeason;
    }


    /**
     * @param bool $date
     * @param string $format
     * @return false|int|string
     * @author: Hhy <jackhhy520@qq.com>
     * @describe:上季度开始时间
     */
    public static function BeginLastSeason($date = true, $format = "Y-m-d H:i:s") {
        $season = ceil((date('n')) / 3) - 1;
        $ThisSeason = mktime(0, 0, 0, $season * 3 - 3 + 1, 1, date('Y'));
        return $date ? date($format, $ThisSeason) : $ThisSeason;
    }


    /**
     * @param bool $date
     * @param string $format
     * @return false|int|string
     * @author: Hhy <jackhhy520@qq.com>
     * @describe:上季度结束时间
     */
    public static function EndLastSeason($date = true, $format = "Y-m-d H:i:s") {
        $season = ceil((date('n')) / 3) - 1;
        $ThisSeason = mktime(23, 59, 59, $season * 3, date('t', mktime(0, 0, 0, $season * 3, 1, date("Y"))), date('Y'));
        return $date ? date($format, $ThisSeason) : $ThisSeason;
    }


    /**
     * @param bool $date
     * @param string $format
     * @return false|int|string
     * @author: Hhy <jackhhy520@qq.com>
     * @describe:今年开始时间
     */
    public static function BeginThisYear($date = true, $format = "Y-m-d H:i:s") {
        $ThisYear = mktime(0, 0, 0, 1, 1, date('Y'));
        return $date ? date($format, $ThisYear) : $ThisYear;
    }


    /**
     * @param bool $date
     * @param string $format
     * @return false|int|string
     * @author: Hhy <jackhhy520@qq.com>
     * @describe:今年结束时间
     */
    public static function EndThisYear($date = true, $format = "Y-m-d H:i:s") {
        $ThisYear = mktime(23, 59, 59, 12, 31, date('Y'));
        return $date ? date($format, $ThisYear) : $ThisYear;
    }


    /**
     * @param bool $date
     * @param string $format
     * @return false|int|string
     * @author: Hhy <jackhhy520@qq.com>
     * @describe:明年开始时间
     */
    public static function BeginTomorrowYear($date = true, $format = "Y-m-d H:i:s") {
        $TomorrowYear = mktime(0, 0, 0, 1, 1, date('Y') + 1);
        return $date ? date($format, $TomorrowYear) : $TomorrowYear;
    }


    /**
     * @param bool $date
     * @param string $format
     * @return false|int|string
     * @author: Hhy <jackhhy520@qq.com>
     * @describe:明年结束时间
     */
    public static function EndTomorrowYear($date = true, $format = "Y-m-d H:i:s") {
        $TomorrowYear = mktime(23, 59, 59, 12, 31, date('Y') + 1);
        return $date ? date($format, $TomorrowYear) : $TomorrowYear;
    }


    /**
     * @param bool $date
     * @param string $format
     * @return false|int|string
     * @author: Hhy <jackhhy520@qq.com>
     * @describe:去年开始时间
     */
    public static function BeginLastYear($date = true, $format = "Y-m-d H:i:s") {
        $LastYear = mktime(0, 0, 0, 1, 1, date('Y') - 1);
        return $date ? date($format, $LastYear) : $LastYear;
    }


    /**
     * @param bool $date
     * @param string $format
     * @return false|int|string
     * @author: Hhy <jackhhy520@qq.com>
     * @describe:去年结束时间
     */
    public static function EndLastYear($date = true, $format = "Y-m-d H:i:s") {
        $LastYear = mktime(23, 59, 59, 12, 31, date('Y') - 1);
        return $date ? date($format, $LastYear) : $LastYear;
    }

}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值