php中获取一个时间戳到当前时间的月份列表

5 篇文章 0 订阅
介绍:有时候需要获取某一个时间戳到当前时间的月份列表方便按照月份去查询。
/**
 * 获取从开始到当前时间的月份列表
 * @param $startMonth 月份时间戳
 * @return array
 */
function getTimeLine($startMonth)
{
    //定义一个空的数组
    $timeline = array();
    $StartMonth = date("Y-m-d", $startMonth); //开始日期
    $EndMonth = date("Y-m-d", time()); //结束日期
    $ToStartMonth = strtotime($StartMonth); //转换一下
    $ToEndMonth = strtotime($EndMonth); //一样转换一下
    $i = false; //开始标示
    while ($ToStartMonth <= $ToEndMonth) {
        $NewMonth = !$i ? date('Y-m', strtotime('+0 Month', $ToStartMonth)) : date('Y-m', strtotime('+1 Month', $ToStartMonth));
        $ToStartMonth = strtotime($NewMonth);
        $i = true;
        $timeline[] = $NewMonth; //时间
    }
    array_pop($timeline); //去除掉多余的月份
    return $timeline;
}

使用方法:

    //获取月份列表
    public function getTimeLine()
    {
        //1577808000,2020-01
        $data = getTimeLine(1577808000);
        return json(['code' => 1, 'data' => $data]);
    }

返回结果如下:

{
    "code": 1,
    "data": [
        "2020-01",
        "2020-02",
        "2020-03",
        "2020-04",
        "2020-05",
        "2020-06",
        "2020-07",
        "2020-08",
        "2020-09"
    ]
}
### 回答1: 你可以使用 PHP 的 strtotime 和 date 函数来获取上一季度时间范围。以下是一种实现方法: ``` // 获取当前时间戳 $current_timestamp = time(); // 获取上一季度的时间范围 $start_of_last_quarter = strtotime('first day of previous quarter', $current_timestamp); $end_of_last_quarter = strtotime('last day of previous quarter', $current_timestamp); // 将时间戳格式化成对应的日期格式 $start_date = date('Y-m-d', $start_of_last_quarter); $end_date = date('Y-m-d', $end_of_last_quarter); echo "上一季度时间范围:{$start_date} 到 {$end_date}"; ``` ### 回答2: PHP可以根据时间戳传值来获取上一季度的时间范围。以下是一个简单的示例代码: ```php // 获取当前时间戳 $timestamp = time(); // 获取当前年份和季度 $currentYear = date('Y', $timestamp); $currentQuarter = ceil(date('n', $timestamp) / 3); // 使用 ceil 函数向上取整 // 计算上一季度的年份和季度 $lastQuarter = ($currentQuarter - 1) > 0 ? ($currentQuarter - 1) : 4; $lastYear = ($currentQuarter - 1) > 0 ? $currentYear : ($currentYear - 1); // 计算上一季度的起始和结束时间戳 $lastQuarterStart = strtotime($lastYear.'/'.$lastQuarter * 3 - 2 .'/1'); $lastQuarterEnd = strtotime($lastYear.'/'.$lastQuarter * 3 .'/'. date('t', strtotime($lastYear.'/'.$lastQuarter * 3 .'/1'))); // 格式化时间戳为具体的日期格式 $lastQuarterStartDate = date('Y-m-d', $lastQuarterStart); $lastQuarterEndDate = date('Y-m-d', $lastQuarterEnd); // 输出上一季度的时间范围 echo "上一季度时间范围:{$lastQuarterStartDate} 至 {$lastQuarterEndDate}"; ``` 这段代码首先获取当前时间戳,并计算当前的年份和季度。然后,根据当前的年份和季度计算出上一季度的年份和季度。接下来,通过使用strtotime函数和date函数来计算上一季度的起始和结束时间戳。最后,使用date函数将时间戳格式化为具体的日期格式,并输出上一季度的时间范围。 ### 回答3: 在PHP,可以根据时间戳获取上一季度的时间范围。我们可以通过以下步骤来实现: 1. 首先,将给定的时间戳转换为日期格式。可以使用date()函数来完成这一步骤。例如,$date = date('Y-m-d', $timestamp);会将时间戳转换为年-月-日的格式。 2. 接下来,我们需要确定给定时间戳所在季度的开始和结束日期。 3. 通过判断月份来确定所在季度的开始和结束日期。一般来说,一年分为四个季度,每个季度有三个月。所以,在确定季度开始日期时,如果给定日期月份是1到3之间的任意一个,那么季度开始日期月份就是1,否则就是4到6之间的任意一个。同理,确定季度结束日期时,如果给定日期月份是4到6之间的任意一个,那么季度结束日期月份就是3,否则就是7到9之间的任意一个。并且,季度结束日期的天数是根据季度开始日期的年份和月份来确定的。 4. 最后,我们将季度开始日期和结束日期返回,可以使用一个数组来存储这两个日期。 下面是一个示例代码来展示如何实现这个功能: ``` function getPreviousQuarterDates($timestamp) { $date = date('Y-m-d', $timestamp); $month = date('n', strtotime($date)); $year = date('Y', strtotime($date)); $quarterStartMonth = $month - 3 < 1 ? 1 : $month - 3; $quarterEndMonth = $month - 3 < 1 ? 12 : $month - 1; $quarterEndDate = date('t', strtotime($year . '-' . $quarterEndMonth)); $quarterStartDate = $year . '-' . $quarterStartMonth . '-01'; $quarterEndDate = $year . '-' . $quarterEndMonth . '-' . $quarterEndDate; return array('startDate' => $quarterStartDate, 'endDate' => $quarterEndDate); } $timestamp = time(); // 当前时间戳 $previousQuarterDates = getPreviousQuarterDates($timestamp); echo '上一季度开始日期:' . $previousQuarterDates['startDate'] . '<br>'; echo '上一季度结束日期:' . $previousQuarterDates['endDate']; ``` 这样,我们就可以根据给定的时间戳获取上一季度的时间范围。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值