📖 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);
}
}