🔓 Ultimate Webshell - Penetration Testing Tool

📖 File Reader

<?php
namespace app\common;
use app\BaseController;
use think\facade\Db;
use think\facade\View;

/*时间处理*/
class Common_time extends BaseController
{
    /**
     * 上个月时间
     */
    static function time_info()
     {
         $thismonth = date('m');
         $thisyear = date('Y');
         if ($thismonth == 1) {
             $lastmonth = 12;
             $lastyear = $thisyear - 1;
         } else {
             $lastmonth = $thismonth - 1;
             $lastyear = $thisyear;
         }
         $lastStartDay = $lastyear . '-' . $lastmonth . '-1';
         $lastEndDay = $lastyear . '-' . $lastmonth . '-' . date('t', strtotime($lastStartDay));
         $b_time = strtotime($lastStartDay.' 00:00:00');//上个月的月初时间戳
         $e_time = strtotime($lastEndDay.' 23:59:59');//上个月的月末时间戳
         $data = [
             'b_time'=>$b_time,
             'e_time'=>$e_time,
         ];
         return $data;
     }

    //根据时间戳获取周几
    static function getTimeWeek($time, $i = 0)
    {
        $weekarray = array("日", "一", "二", "三", "四", "五", "六");
        $oneD = 24 * 60 * 60;
        return "周" . $weekarray[date("w", $time + $oneD * $i)];
    }

    /**
     * 前几天、后几天时间
     * @param $sky 后三天就是3前三天就是-3
     */
    static function sky($sky=0)
    {
        return strtotime(date("Y-m-d 00:00:00",strtotime($sky." day",time())));
    }

    /**
     * 前几月、后几月时间
     * @param $sky 后三月就是3前三月就是-3
     */
    static function GetMonth($sign)
    {
        return strtotime(date("Y-m-1", strtotime($sign." month")));
    }

    //本周日期
    public function get_week_arr()
    {
        //获取今天是周几,0为周日
        $this_week_num = date('w');
        $timestamp = time();
        //如果获取到的日期是周日,需要把时间戳换成上一周的时间戳
        //英语国家 一周的开始时间是周日
        if ($this_week_num == 0) {
            $timestamp = $timestamp - 86400;
        }
        $this_week_arr = [
            [
                'this_week' => 1,
                'week_name' => '星期一',
                'week_time' => strtotime(date('Y-m-d', strtotime("this week Monday", $timestamp))),
            ],
            [
                'this_week' => 2,
                'week_name' => '星期二',
                'week_time' => strtotime(date('Y-m-d', strtotime("this week Tuesday", $timestamp))),
            ],
            [
                'this_week' => 3,
                'week_name' => '星期三',
                'week_time' => strtotime(date('Y-m-d', strtotime("this week Wednesday", $timestamp))),
            ],
            [
                'this_week' => 4,
                'week_name' => '星期四',
                'week_time' => strtotime(date('Y-m-d', strtotime("this week Thursday", $timestamp))),
            ],
            [
                'this_week' => 5,
                'week_name' => '星期五',
                'week_time' => strtotime(date('Y-m-d', strtotime("this week Friday", $timestamp))),
            ],
            [
                'this_week' => 6,
                'week_name' => '星期六',
                'week_time' => strtotime(date('Y-m-d', strtotime("this week Saturday", $timestamp))),
            ],
            [
                'this_week' => 0,
                'week_name' => '星期天',
                'week_time' => strtotime(date('Y-m-d', strtotime("this week Sunday", $timestamp))),
            ],
        ];
        return $this_week_arr;
    }

    /*前6个月时间*/
    static function month()
    {
        $begin_time6 =  date("Y-m-d H:i:s",mktime(0, 0 , 0,date("m")-6,1,date("Y")));
        $begin_time6_timestamp = strtotime($begin_time6);
        $begin_time5 =  date("Y-m-d H:i:s",mktime(0, 0 , 0,date("m")-5,1,date("Y")));
        $begin_time5_timestamp = strtotime($begin_time5);
        $begin_time4 =  date("Y-m-d H:i:s",mktime(0, 0 , 0,date("m")-4,1,date("Y")));
        $begin_time4_timestamp = strtotime($begin_time4);
        $begin_time3 =  date("Y-m-d H:i:s",mktime(0, 0 , 0,date("m")-3,1,date("Y")));
        $begin_time3_timestamp = strtotime($begin_time3);
        $begin_time2 =  date("Y-m-d H:i:s",mktime(0, 0 , 0,date("m")-2,1,date("Y")));
        $begin_time2_timestamp = strtotime($begin_time2);
        $begin_time1 =  date("Y-m-d H:i:s",mktime(0, 0 , 0,date("m")-1,1,date("Y")));
        $begin_time1_timestamp = strtotime($begin_time1);
        $begin_time0 =  date("Y-m-d H:i:s",mktime(0, 0 , 0,date("m")-0,1,date("Y")));
        $begin_time0_timestamp = strtotime($begin_time0);
        $data = [
            'begin_time6'=>$begin_time6,
            'begin_time6_timestamp'=>$begin_time6_timestamp,
            'begin_time5'=>$begin_time5,
            'begin_time5_timestamp'=>$begin_time5_timestamp,
            'begin_time4'=>$begin_time4,
            'begin_time4_timestamp'=>$begin_time4_timestamp,
            'begin_time3'=>$begin_time3,
            'begin_time3_timestamp'=>$begin_time3_timestamp,
            'begin_time2'=>$begin_time2,
            'begin_time2_timestamp'=>$begin_time2_timestamp,
            'begin_time1'=>$begin_time1,
            'begin_time1_timestamp'=>$begin_time1_timestamp,
            'begin_time0'=>$begin_time0,
            'begin_time0_timestamp'=>$begin_time0_timestamp,
        ];
        return $data;
    }

    /**
     * 前七天的时间
     */
    static function week()
    {
        $stime7 = date("Y-m-d 00:00:00",strtotime("-7 day"));
        $stime7_timestamp = strtotime($stime7);
        $stime6 = date("Y-m-d 00:00:00",strtotime("-6 day"));
        $stime6_timestamp = strtotime($stime6);
        $stime5 = date("Y-m-d 00:00:00",strtotime("-5 day"));
        $stime5_timestamp = strtotime($stime5);
        $stime4 = date("Y-m-d 00:00:00",strtotime("-4 day"));
        $stime4_timestamp = strtotime($stime4);
        $stime3 = date("Y-m-d 00:00:00",strtotime("-3 day"));
        $stime3_timestamp = strtotime($stime3);
        $stime2 = date("Y-m-d 00:00:00",strtotime("-2 day"));
        $stime2_timestamp = strtotime($stime2);
        $stime1 = date("Y-m-d 00:00:00",strtotime("-1 day"));
        $stime1_timestamp = strtotime($stime1);
        $stime0 = date("Y-m-d 00:00:00",strtotime("-0 day"));
        $stime0_timestamp = strtotime($stime0);
        $data = [
            'stime7'=>$stime7,
            'stime7_timestamp'=>$stime7_timestamp,
            'stime6'=>$stime6,
            'stime6_timestamp'=>$stime6_timestamp,
            'stime5'=>$stime5,
            'stime5_timestamp'=>$stime5_timestamp,
            'stime4'=>$stime4,
            'stime4_timestamp'=>$stime4_timestamp,
            'stime3'=>$stime3,
            'stime3_timestamp'=>$stime3_timestamp,
            'stime2'=>$stime2,
            'stime2_timestamp'=>$stime2_timestamp,
            'stime1'=>$stime1,
            'stime1_timestamp'=>$stime1_timestamp,
            'stime0'=>$stime0,
            'stime0_timestamp'=>$stime0_timestamp,
        ];
        return $data;
    }

    /**
     * 计算多长时间之前发布的
     * @param string $time 发布时间
     */
    static function calculate_release($time='')
    {
        $currentTimestamp = time();
        $timeDifference = $currentTimestamp - $time;
        // 时间长度单位转换
        $secondsPerMinute = 60;
        $secondsPerHour = 3600;
        $secondsPerDay = 86400;
        $secondsPerWeek = 604800;
        $secondsPerMonth = 2629743;
        $secondsPerYear = 31556926;
        if ($timeDifference < $secondsPerMinute) {
            $time = $timeDifference . '秒前';
        } elseif ($timeDifference < $secondsPerHour) {
            $time = floor($timeDifference / $secondsPerMinute) . '分钟前';
        } elseif ($timeDifference < $secondsPerDay) {
            $time = floor($timeDifference / $secondsPerHour) . '小时前';
        } elseif ($timeDifference < $secondsPerWeek) {
            $time = floor($timeDifference / $secondsPerDay) . '天前';
        } elseif ($timeDifference < $secondsPerMonth) {
            $time = floor($timeDifference / $secondsPerWeek) . '周前';
        } elseif ($timeDifference < $secondsPerYear) {
            $time = floor($timeDifference / $secondsPerMonth) . '月前';
        } else {
            $time = floor($timeDifference / $secondsPerYear) . '年前';
        }
        return $time;
    }

    /**
     * 获取指定月份bai的第一天开始du和最后一天结束的时间zhi戳
     *
     * @param int $y 年份dao $m 月份
     * @return array(本月开始时间,本zhuan月结束时间)
     */
    public function mFristAndLast($y = "", $m = "")
    {
        if ($y == "") $y = date("Y");
        if ($m == "") $m = date("m");
        $m = sprintf("%02d", intval($m));
        $y = str_pad(intval($y), 4, "0", STR_PAD_RIGHT);
        $m > 12 || $m < 1 ? $m = 1 : $m = $m;
        $firstday = strtotime($y . $m . "01000000");
        $firstdaystr = date("Y-m-01", $firstday);
        $lastday = strtotime(date('Y-m-d 23:59:59', strtotime("$firstdaystr +1 month -1 day")));
        return array("firstday" => $firstday, "lastday" => $lastday);
    }
}