PHP获取当前日期所在星期(月份)的开始日期与结束

网络编程 2025-03-29 03:41www.168986.cn编程入门

以下是对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时,获取的是当前星期的开始和结束日期;以此类推。这些日期的结果以数组的形式返回。通过这样的设计,你可以方便地获取到不同的时间范围的开始和结束日期,以满足不同的需求。

Copyright © 2016-2025 www.168986.cn 狼蚁网络 版权所有 Power by