PHP获取当前日期所在星期(月份)的开始日期与结束
以下是对PHP获取当前日期所在星期(月份)的开始日期与结束日期的实现代码的生动和介绍,希望对你有所帮助。
让我们直接切入主题,先来看代码:
```php
// 获取指定日期所在星期的开始时间与结束时间
function getWeekRange($date){
$ret = array();
$timestamp = strtotime($date); // 将日期字符串转换为时间戳
$w = strftime('%u',$timestamp); // 获取星期几(按照ISO标准,星期一为第一天)
// 计算星期的开始时间和结束时间,并以"Y-m-d H:i:s"格式存储
$ret['sdate'] = date('Y-m-d 00:00:00',$timestamp - ($w-1)86);
$ret['edate'] = date('Y-m-d 23:59:59',$timestamp + (7-$w)86);
return $ret;
}
// 获取指定日期所在月的开始日期与结束日期
function getMonthRange($date){
$ret = array();
$timestamp = strtotime($date); // 将日期字符串转换为时间戳
$mdays = date('t',$timestamp); // 获取月份的天数
// 计算月的开始时间和结束时间,并以"Y-m-d H:i:s"格式存储
$ret['sdate'] = date('Y-m-01 00:00:00',$timestamp);
$ret['edate'] = date('Y-m-' . $mdays . ' 23:59:59',$timestamp);
return $ret;
}
```
这两个函数分别用于获取指定日期所在星期(月份)的开始日期与结束日期。它们首先将输入的日期字符串转换为时间戳,然后根据不同的需求进行计算。星期的计算考虑了ISO标准的星期定义,即星期一为第一天。月份的计算则直接获取了月份的天数,以确定月份的结束日期。
接下来是这两个函数的应用:
```php
// 应用函数获取不同时间范围的开始日期与结束日期
function getFilter($n){
$ret = array();
switch($n){
case 1:// 昨天
$ret['sdate'] = date('Y-m-d 00:00:00',strtotime('-1 day'));
$ret['edate'] = date('Y-m-d 23:59:59',strtotime('-1 day'));
break;
case 2://本星期
$ret = getWeekRange(date('Y-m-d')); // 获取当前星期的开始和结束日期
break;
case 3://上一个星期
$strDate = date('Y-m-d',strtotime('-1 week')); // 获取上一周的某天(这里选择周一)
$ret = getWeekRange($strDate); // 获取上一星期的开始和结束日期
break;
case 4: //上上个星期
$strDate = date('Y-m-d',strtotime('-2 week')); // 获取上上周的某天(这里选择周一)
$ret = getWeekRange($strDate); // 获取上上星期的开始和结束日期
break;
case 5: //本月
$ret = getMonthRange(date('Y-m-d')); // 获取当前月的开始和结束日期
break;
case 6://上月
$strDate = date('Y-m-d',strtotime('-1 month')); // 获取上一月的某天(这里选择第一天)
$ret = getMonthRange($strDate); // 获取上月的开始和结束日期
break;
}
return $ret;
}
```
这个函数根据输入的参数获取不同时间范围的开始日期和结束日期。它使用了上面定义的`getWeekRange`和`getMonthRange`函数,通过switch语句根据不同的参数值选择不同的时间范围进行计算。例如,参数值为1时,获取的是昨天的开始和结束日期;参数值为2时,获取的是当前星期的开始和结束日期;以此类推。这些日期的结果以数组的形式返回。通过这样的设计,你可以方便地获取到不同的时间范围的开始和结束日期,以满足不同的需求。
编程语言
- PHP获取当前日期所在星期(月份)的开始日期与结束
- Angular5给组件本身的标签添加样式class的方法
- PHP中的输出echo、print、printf、sprintf、print_r和va
- 一次$.getJSON不执行的简单记录
- .Net 单例模式(Singleton)
- 详解Node.js利用node-git-server快速搭建git服务器
- 使用ucenter实现多站点同步登录的讲解
- PHP调试及性能分析工具Xdebug详解
- 微信小程序Page中data数据操作和函数调用方法
- Vue ElementUI之Form表单验证遇到的问题
- 让Sqlite脱离VC++ Runtime独立运行的方法
- php生成圆角图片的方法
- sqlserver 千万数量级分页存储过程代码
- Vue实现textarea固定输入行数与添加下划线样式的思
- Ajax方式提交带文件上传的表单及隐藏iframe应用
- Gridview用法大总结(全程图解珍藏版)