php获取本周周一、周日时间,上周周一、周日时间,本月第一天,本月最后一天,上个月第一天,最后一天时间

原创 2012年03月26日 11:06:20
//这个星期的星期一
// @$timestamp ,某个星期的某一个时间戳,默认为当前时间
// @is_return_timestamp ,是否返回时间戳,否则返回时间格式
function this_monday($timestamp=0,$is_return_timestamp=true){
	static $cache ;
	$id = $timestamp.$is_return_timestamp;
	if(!isset($cache[$id])){
		if(!$timestamp) $timestamp = time();
		$monday_date = date('Y-m-d', $timestamp-86400*date('w',$timestamp)+(date('w',$timestamp)>0?86400:-/*6*86400*/518400));
		if($is_return_timestamp){
			$cache[$id] = strtotime($monday_date);
		}else{
			$cache[$id] = $monday_date;
		}
	}
	return $cache[$id];

}

//这个星期的星期天
// @$timestamp ,某个星期的某一个时间戳,默认为当前时间
// @is_return_timestamp ,是否返回时间戳,否则返回时间格式
function this_sunday($timestamp=0,$is_return_timestamp=true){
	static $cache ;
	$id = $timestamp.$is_return_timestamp;
	if(!isset($cache[$id])){
		if(!$timestamp) $timestamp = time();
		$sunday = this_monday($timestamp) + /*6*86400*/518400;
		if($is_return_timestamp){
			$cache[$id] = $sunday;
		}else{
			$cache[$id] = date('Y-m-d',$sunday);
		}
	}
	return $cache[$id];
}

//上周一
// @$timestamp ,某个星期的某一个时间戳,默认为当前时间
// @is_return_timestamp ,是否返回时间戳,否则返回时间格式
function last_monday($timestamp=0,$is_return_timestamp=true){
	static $cache ;
	$id = $timestamp.$is_return_timestamp;
	if(!isset($cache[$id])){
		if(!$timestamp) $timestamp = time();
		$thismonday = this_monday($timestamp) - /*7*86400*/604800;
		if($is_return_timestamp){
			$cache[$id] = $thismonday;
		}else{
			$cache[$id] = date('Y-m-d',$thismonday);
		}
	}
	return $cache[$id];
}

//上个星期天
// @$timestamp ,某个星期的某一个时间戳,默认为当前时间
// @is_return_timestamp ,是否返回时间戳,否则返回时间格式
function last_sunday($timestamp=0,$is_return_timestamp=true){
	static $cache ;
	$id = $timestamp.$is_return_timestamp;
	if(!isset($cache[$id])){
		if(!$timestamp) $timestamp = time();
		$thissunday = this_sunday($timestamp) - /*7*86400*/604800;
		if($is_return_timestamp){
			$cache[$id] = $thissunday;
		}else{
			$cache[$id] = date('Y-m-d',$thissunday);
		}
	}
	return $cache[$id];

}

//这个月的第一天
// @$timestamp ,某个月的某一个时间戳,默认为当前时间
// @is_return_timestamp ,是否返回时间戳,否则返回时间格式

function month_firstday($timestamp = 0, $is_return_timestamp=true){
	static $cache ;
	$id = $timestamp.$is_return_timestamp;
	if(!isset($cache[$id])){
		if(!$timestamp) $timestamp = time();
		$firstday = date('Y-m-d', mktime(0,0,0,date('m',$timestamp),1,date('Y',$timestamp)));
		if($is_return_timestamp){
			$cache[$id] = strtotime($firstday);
		}else{
			$cache[$id] = $firstday;
		}
	}
	return $cache[$id];
}

//这个月的第一天
// @$timestamp ,某个月的某一个时间戳,默认为当前时间
// @is_return_timestamp ,是否返回时间戳,否则返回时间格式

function month_lastday($timestamp = 0, $is_return_timestamp=true){
	static $cache ;
	$id = $timestamp.$is_return_timestamp;
	if(!isset($cache[$id])){
		if(!$timestamp) $timestamp = time();
		$lastday = date('Y-m-d', mktime(0,0,0,date('m',$timestamp),date('t',$timestamp),date('Y',$timestamp)));
		if($is_return_timestamp){
			$cache[$id] = strtotime($lastday);
		}else{
			$cache[$id] = $lastday;
		}
	}
	return $cache[$id];
}

//上个月的第一天
// @$timestamp ,某个月的某一个时间戳,默认为当前时间
// @is_return_timestamp ,是否返回时间戳,否则返回时间格式

function lastmonth_firstday($timestamp = 0, $is_return_timestamp=true){
	static $cache ;
	$id = $timestamp.$is_return_timestamp;
	if(!isset($cache[$id])){
		if(!$timestamp) $timestamp = time();
		$firstday = date('Y-m-d', mktime(0,0,0,date('m',$timestamp)-1,1,date('Y',$timestamp)));
		if($is_return_timestamp){
			$cache[$id] = strtotime($firstday);
		}else{
			$cache[$id] = $firstday;
		}
	}
	return $cache[$id];
}

//上个月的第一天
// @$timestamp ,某个月的某一个时间戳,默认为当前时间
// @is_return_timestamp ,是否返回时间戳,否则返回时间格式

function lastmonth_lastday($timestamp = 0, $is_return_timestamp=true){
	static $cache ;
	$id = $timestamp.$is_return_timestamp;
	if(!isset($cache[$id])){
		if(!$timestamp) $timestamp = time();
		$lastday = date('Y-m-d', mktime(0,0,0,date('m',$timestamp)-1, date('t',lastmonth_firstday($timestamp)),date('Y',$timestamp)));
		if($is_return_timestamp){
			$cache[$id] = strtotime($lastday);
		}else{
			$cache[$id] =  $lastday;
		}
	}
	return $cache[$id];
}
echo '本周星期一:'.this_monday(0,false).'';
echo '本周星期天:'.this_sunday(0,false).'';
echo '上周星期一:'.last_monday(0,false).'';
echo '上周星期天:'.last_sunday(0,false).'';
echo '本月第一天:'.month_firstday(0,false).'';
echo '本月最后一天:'.month_lastday(0,false).'';
echo '上月第一天:'.lastmonth_firstday(0,false).'';
echo '上月最后一天:'.lastmonth_lastday(0,false).'';

php 获取时间(今天,昨天,三天内,本周,上周,本月,三年内,半年内,一年内,三年内)

  • ihelloworld
  • ihelloworld
  • 2012年06月28日 15:59
  • 11502

php一行代码获取本周一,本周日,上周一,上周日,本月一日,本月最后一日,上月一日,上月最后一日日期

  • sasa12121212
  • sasa12121212
  • 2017年02月07日 11:56
  • 4065

php获取某天所在周的第一天和最后一天时间的方法

本文实例讲述了PHP计算指定日期所在周的开始和结束日期的方法。分享给大家供大家参考。...
  • a138984
  • a138984
  • 2015年10月30日 09:00
  • 2213

PHP完美获取周一0点的时间的方法(周一到周日为同一周)

A方案: 运行结果: B方案:
  • chris_zqw
  • chris_zqw
  • 2017年10月11日 16:29
  • 262

php 计算出一年中每周的周一日期

最近接到一个任务,归纳起来,就是:要算出每年当中,每周的周一日期。想了一会,看了下date函数,深入了解了一下date函数各个参数的含义之后,终于把这道题做出来了! 在date()函数中,有一个参数...
  • whq19890827
  • whq19890827
  • 2016年09月09日 20:04
  • 1009

php取周的第一天和最后一天

http://php.net/manual/zh/function.strtotime.php michal dot kocarek at brainbox dot cz ¶ 7 ye...
  • lein_wang
  • lein_wang
  • 2016年11月25日 17:32
  • 917

php获取本周周一、周日时间,上周周一、周日时间,本月第一天,本月最后一天,上个月第一天,最后一天时间

//这个星期的星期一  // @$timestamp ,某个星期的某一个时间戳,默认为当前时间  // @is_return_timestamp ,是否返回时间戳,否则返回时间格式...
  • yongzhen150
  • yongzhen150
  • 2016年01月22日 13:26
  • 1330

PHP获取本周第一天日期

// 返回执行日期所在周的第一天(周一)日期 function firstOfWeek($date) { $now = strtotime($date); //当时的时间戳 $n...
  • iioioooo4
  • iioioooo4
  • 2016年05月05日 11:05
  • 297

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

  • lg_lin
  • lg_lin
  • 2016年07月14日 12:17
  • 6744

PHP 获取本月/本周第一天/最…

$year = date("Y");  $month = date("m");  $allday = date("t");  $strat_time = strtotime($year."-".$mo...
  • haibo0668
  • haibo0668
  • 2016年06月02日 13:07
  • 94
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:php获取本周周一、周日时间,上周周一、周日时间,本月第一天,本月最后一天,上个月第一天,最后一天时间
举报原因:
原因补充:

(最多只允许输入30个字)