PHP 获取指定一段时间内的每天的开始时间

本文介绍了一组PHP函数,用于处理日期与时间的各种常见需求,包括获取指定时间段内的每日时间戳或日期格式、计算相对于当前时间的指定天数前后的时间范围,以及获取指定日期所在周的开始与结束时间。

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

代码块

<?php
/**
 *获取指定一段时间内的每天的开始时间
 * @param $startdate 开始日期
 * @param $enddate 结束日期
 * @param $format 时间格式 0:时间戳 1日期格式
 * @return array 返回一维数组
 */
function PeriodTime($startdate, $enddate,$format=0){
    $stimestamp = strtotime($startdate);
    $etimestamp = strtotime($enddate);    // 计算日期段内有多少天
    $days = ($etimestamp-$stimestamp)/86400+1;    // 保存每天日期
    $date = array();
    for($i=0; $i<$days; $i++){
        if ($format==0) {
            $date[] = $stimestamp+(86400*$i);
        }else{
            $date[] = date('Y-m-d', $stimestamp+(86400*$i));
        }
    }
    //结果
    return $date;
}
/**
 *获取指定几天前和几天后的开始时间和结束时间
 * @param $number 以现在时间为基准,几天前(负数)或几天后(正数)
 * @param $format 时间格式 0:时间戳 1日期格式
 * @return array 返回一维数组 (键值对方式)
 * 一天后的开始时间和结束时间 SpecifiedTime(1,1)
 * 一天前的开始时间和结束时间 SpecifiedTime(-1,1)
 */
function SpecifiedTime($number,$format=0){
    //得到指定时间的开始时间戳
    $beginTime = strtotime(date('Y-m-d',strtotime("$number days")));
    //得到指定时间的结束时间戳
    $endTime = $beginTime+(24*60*60)-1;
    //判断返回什么格式的时间
    if ($format==1){
        $beginTime = date('Y-m-d H:i:s',$beginTime);
        $endTime = date('Y-m-d H:i:s',$endTime);
    }
    return ['beginTime'=>$beginTime,'endTime'=>$endTime];
}
/**
 *获取指定时间的每周一开始时间和周末开始时间
 * @param $strtotime 指定时间(可以为时间戳或日期)
 * @param $format 时间格式 0:时间戳 1日期格式
 * @return array 返回一维数组 (键值对方式)
 */
function GetWeek($strtotime,$format=0){
    $ret = strtotime($strtotime);
    //判断是不是时间戳格式时间
    if ($ret){
        $strtotime = $ret;
    }
    $time= date("Y-m-d H:i:s",$strtotime);
    $lastday=date("Y-m-d",strtotime("$time Sunday"));
    if ($format==0){
        $weekEnd =strtotime("$lastday - 6 days");
        $weekStart =strtotime($lastday);
    }else{
        $weekEnd =date("Y-m-d",strtotime("$lastday - 6 days"));
        $weekStart =$lastday;
    }
    return ['weekStart'=>$weekStart,'weekEnd'=>$weekEnd];
}
/**
 *时间的转换
 * @param $strtotime 指定时间(可以为时间戳或日期)
 * @param $format 时间格式 0:时间戳 1日期格式
 * @return array 返回一维数组 (键值对方式)
 */
function TimeConversion($strtotime){
    $ret = strtotime($strtotime);
    //判断是什么格式的时间
    if ($ret){
        $result = $ret;
    }else{
        $result = date("Y-m-d H:i:s",$strtotime);
    }
    return $result;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值