首页 >社区问答列表 >php 怎么获取当前月份往前24个月中的每个月的订单总和?

php 怎么获取当前月份往前24个月中的每个月的订单总和?

2734004458-58cba02ac31e3_articlex.png

  • 数据分析师
  • 数据分析师    2017-10-01 00:55:152楼

    php 怎么获取当前月份往前24个月中的每个月的订单总和?-PHP中文网问答-php 怎么获取当前月份往前24个月中的每个月的订单总和?-PHP中文网问答

    围观一下哦,学习一下。

    +0添加回复

  • 回复
  • 阿神
  • 阿神    2017-03-18 17:15:011楼

    直接上代码咯,看着代码和注释能清晰一点。

    $orders = array(); // 储存每个月的订单$current_year  = (int) date('Y-m', time()); // 当前年份$current_month = (int) date('Y-m', time()); // 当前月份for ($i = 1; $i < 25; $i++) { // 循环24次
        
        // 获取本月最后一天24点的时间戳(为什么这样获取呢?看示例,例如:1月31日24点 = 2月1日0点)
        $timestamp_end = strtotime($current_year . $current_month); // 注意current_year和month都是上次循环的
        // 本次循环要获取订单数的月份
        $current_month = $current_month - $i; 
        if ($current_month === 0) { // 月份减一等于零,证明是要从1月跳到上一年的12月
            $current_month = 12; // 本次要获取订单数的月份
            $current_year  = $current_year - 1; // 本次要获取订单数的年份
        }    // 获取本月第一天0点的时间戳
        $timestamp_start = strtotime($current_year . $current_month); // 获取这个月刚开始时的时间戳
        // 根据时间戳获取订单(传入的时间戳区间就是这个月的)
        $sql = "SELECT * FROM orders WHERE create_time >= $start_timestamp AND create_time <= $end_timestamp";    // 后面查这段sql就可以获取当月订单了,(假设这个query()是执行sql的方法)
        $orders[$current_year][$current_month] = query($sql);
    }

    +0添加回复

  • 回复