内容详情 您现在的位置是: 首页> PHP

PHP获取上周、本周、上月、本月、本季度、上季度时间方法

发布时间:2020-10-02 19:18 已围观:1280

摘要PHP常用日期处理函数,时间戳处理函数,PHP获取上周、本周、上月、本月、本季度、上季度时间方法,时间戳转换

常用日期处理函数,时间戳处理函数等,如下讲解:

echo date('Y-m-d h:i:s',time());
//运行结果(年月日时分秒,“-”间隔):2014-09-12 06:28:32
echo date('Y-m-d',time());
//运行结果(年月日,“-”间隔):2014-09-12
echo date('Y-m-d',strtotime(date('Y-m-d', time()-86400)));
//运行结果(当前日期前一天的年月日,“-”间隔):2014-09-11
echo date('Ymd',time());
//运行结果(年月日,无间隔):20140912
echo date('m-d',time());
//运行结果(月日,“-”间隔):09-12
echo str_replace("-","月",date('m-d',time()-date('w',time())*86400))."日";
//运行结果(月日,汉字显示间隔):09月12日
echo date('w',time());
//运行结果(星期几):5
echo time();
//运行结果(当前日期时间的秒数):1410503809
echo strtotime(date('Y-m-d',time()));
//运行结果(当前日期秒数,具体到天):1410503809
echo date('Y-m-d',strtotime(date('Y-m-d', time()))-date('w',strtotime(date('Y-m-d', time())))*86400);
//运行结果(当前日期所属自然周的起始日期即周日的日期,具体到天,“-”间隔):2014-09-07
//php获取今日开始时间戳和结束时间戳
$beginToday=mktime(0,0,0,date('m'),date('d'),date('Y'));
$endToday=mktime(0,0,0,date('m'),date('d')+1,date('Y'))-1;
//php获取昨日起始时间戳和结束时间戳
$beginYesterday=mktime(0,0,0,date('m'),date('d')-1,date('Y'));
$endYesterday=mktime(0,0,0,date('m'),date('d'),date('Y'))-1;
//php获取上周起始时间戳和结束时间戳
$beginLastweek=mktime(0,0,0,date('m'),date('d')-date('w')+1-7,date('Y'));
$endLastweek=mktime(23,59,59,date('m'),date('d')-date('w')+7-7,date('Y'));
//php获取本月起始时间戳和结束时间戳
$beginThismonth=mktime(0,0,0,date('m'),1,date('Y'));
$endThismonth=mktime(23,59,59,date('m'),date('t'),date('Y'));
 /**date 2015-04-11
  \* author http://www.lai18.com
  **/
 echo date("Ymd",strtotime("now")), "\n";
 echo date("Ymd",strtotime("-1 week Monday")), "\n";
 echo date("Ymd",strtotime("-1 week Sunday")), "\n";
 echo date("Ymd",strtotime("+0 week Monday")), "\n";
 echo date("Ymd",strtotime("+0 week Sunday")), "\n";
 echo "*********第几个月:";
 echo date('n');
 echo "*********本周周几:";
 echo date("w");
 echo "*********本月天数:";
 echo date("t");
 echo "*********";
 echo '上周起始时间:';
 echo date("Y-m-d H:i:s",mktime(0, 0 , 0,date("m"),date("d")-date("w")+1-7,date("Y"))),"\n";
 echo date("Y-m-d H:i:s",mktime(23,59,59,date("m"),date("d")-date("w")+7-7,date("Y"))),"\n";
 echo '本周起始时间:';
 echo date("Y-m-d H:i:s",mktime(0, 0 , 0,date("m"),date("d")-date("w")+1,date("Y"))),"\n";
 echo date("Y-m-d H:i:s",mktime(23,59,59,date("m"),date("d")-date("w")+7,date("Y"))),"\n";
 echo '上月起始时间:';
 echo date("Y-m-d H:i:s",mktime(0, 0 , 0,date("m")-1,1,date("Y"))),"\n";
 echo date("Y-m-d H:i:s",mktime(23,59,59,date("m") ,0,date("Y"))),"\n";
 echo '本月起始时间:';
 echo date("Y-m-d H:i:s",mktime(0, 0 , 0,date("m"),1,date("Y"))),"\n";
 echo date("Y-m-d H:i:s",mktime(23,59,59,date("m"),date("t"),date("Y"))),"\n";
 $season = ceil((date('n'))/3);//当月是第几季度
 echo '本季度起始时间:';
 echo date('Y-m-d H:i:s', mktime(0, 0, 0,$season*3-3+1,1,date('Y'))),"\n";
 echo date('Y-m-d H:i:s', mktime(23,59,59,$season*3,date('t',mktime(0, 0 , 0,$season*3,1,date("Y"))),date('Y'))),"\n";
 $season = ceil((date('n'))/3)-1;//上季度是第几季度
 echo '上季度起始时间:';
 echo date('Y-m-d H:i:s', mktime(0, 0, 0,$season*3-3+1,1,date('Y'))),"\n";
 echo date('Y-m-d H:i:s', mktime(23,59,59,$season*3,date('t',mktime(0, 0 , 0,$season*3,1,date("Y"))),date('Y'))),"\n";
?>

time():返回当前的 Unix 时间戳
date():格式化一个本地时间/日期。
应用举例:
date("Y-m-d H:i:s",time());
格式化当前时间,输出:2010-10-11 05:27:35
strtotime():将任何英文文本的日期时间描述解析为 Unix 时间戳。
应用举例:
echo strtotime("+1 day"), "n";
输出1天前的时间戳:1286861475
date_default_timezone_set():设定要用的默认时区。
一般我们设置北京时间:date_default_timezone_set("PRC");


理解上面几个函数后我们来写时间轴函数:

该函数的原理就是将系统当前时间与目标时间比较,得到一个差值,再将差值与时间范围(转换成秒)比较,根据其处在时间轴的范围输出不同的结果(如:5分钟前)。为了便于计算,我们将时间都转换成Unix时间戳。

function tranTime($time) {
   $rtime = date("Y-m-d H:i", $time);
   $htime = date("H:i", $time);
   $htime = date("H:i", $time);

赞一个 (7)