PHPIN.NET

 找回密码
 立即注册
查看: 6741|回复: 0

[PHP类\函数] PHP函数实现获取月、周、日的开始时间戳和结束时间戳

[复制链接]

469

主题

31

回帖

5563

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
5563
发表于 2015-9-1 14:13:56 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

x
PHP函数实现获取月、周、日的开始时间戳和结束时间戳

函数源码:
  1. /*
  2. $type: 需要获取的时间戳类型:M为月 W为周 D为天。
  3. $value: 需要的值。+ 或者 - 数值。
  4. $time:返回为包含开始时间和结束时间的数组。
  5. */
  6. function ReturnUtime($type='',$value=''){
  7.     $type=strtoupper($type);
  8.     switch ($type) {
  9.         case 'M':
  10.             $t = strtotime((date('Y-m',time()) . '-01 00:00:01')); // 20151031修复strtotime按30天计算的BUG
  11.             $time[] = strtotime(date("Y-m-01 00:00:00", strtotime("{$value} month",$t)));//月开始时间
  12.             $time[] = strtotime(date("Y-m-t 23:59:59", strtotime("{$value} month",$t)));//月结束时间
  13.             break;
  14.         case 'W':
  15.             $time[] = mktime(0,0,0,date('m'),date('d')-date('w')+1+($value),date('Y'));//周开始时间
  16.             $time[] = mktime(23,59,59,date('m'),date('d')-date('w')+7+($value),date('Y'));//周结束时间
  17.             break;
  18.         case 'D':
  19.             $time[] = mktime(0,0,0,date('m'),date('d')+($value),date('Y'));//天开始时间
  20.             $time[] = mktime(23,59,59,date('m'),date('d')+($value),date('Y'));//天结束时间
  21.             break;
  22.         default:
  23.             $time[] = mktime(0,0,0,date('m'),date('d'),date('Y'));//默认为当天
  24.             $time[] = mktime(23,59,59,date('m'),date('d'),date('Y'));//默认为当天
  25.             break;
  26.     }
  27.     return $time;
  28. }
复制代码


使用方法:
  1. //部分例子:
  2. echo date("Y-m-d H:i:s",ReturnUtime('M','-1')[0]).'<br>';//上个月第一天
  3. echo date("Y-m-d H:i:s",ReturnUtime('M','-1')[1]).'<br>';//上个月最后一天
  4. echo date("Y-m-d H:i:s",ReturnUtime('W','-7')[0]).'<br>';//上周第一天
  5. echo date("Y-m-d H:i:s",ReturnUtime('W','-7')[1]).'<br>';//上周最后一天
  6. echo date("Y-m-d H:i:s",ReturnUtime('D','-1')[0]).'<br>';//昨天开始时间
  7. echo date("Y-m-d H:i:s",ReturnUtime('D','-1')[1]).'<br>';//昨天结束时间
复制代码


比如获取上个月的开始和结束,可以这么定义使用:
  1. $aa=ReturnUtime('M','-1');
  2. echo date("Y-m-d H:i:s",$aa[0]);//开始时间
  3. echo '<br />';
  4. echo date("Y-m-d H:i:s",$aa[1]);//结束时间
复制代码


比如获取上周的开始和结束,可以这么使用:
  1. $aa=ReturnUtime('W','-7');
  2. echo date("Y-m-d H:i:s",$aa[0]);//开始时间
  3. echo '<br />';
  4. echo date("Y-m-d H:i:s",$aa[1]);//结束时间
复制代码


比如获取昨天的开始和结束,可以这么使用:
  1. $aa=ReturnUtime('D','-1');
  2. echo date("Y-m-d H:i:s",$aa[0]);//开始时间
  3. echo '<br />';
  4. echo date("Y-m-d H:i:s",$aa[1]);//结束时间
复制代码
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|PHPIN.NET ( 冀ICP备12000898号-14 )|网站地图

GMT+8, 2024-9-8 11:35

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表