php获取某个时间所在的月份的开始结束时间,所在周的开始结束时间。
/**
* 获取某个时间戳所在的月份的开始时间戳和结束时间戳
* @param int $timestamp
* @return array
*/
function getMonthBeginAndEnd($timestamp = 0) {
!$timestamp && $timestamp = time();
$year = date('Y', $timestamp);
$month = date('m', $timestamp);
$d = date('t', strtotime($year . '-' . $month));
return ['begin' => strtotime($year . '-' . $month), 'end' => mktime(23, 59, 59, $month, $d, $year)];
}
/**
* 获取某个时间戳所在的星期的开始时间戳和结束时间戳
* @param int $time 时间戳,默认当前时间
* @param int $first 表示每周星期一为开始日期 0表示每周日为开始日期
* @return array
*/
function getWeekBeginAndEnd($timestamp = 0, $first = 1) {
!$timestamp && $timestamp = time();
$date = date('Y-m-d', $timestamp);
$w = date('w', strtotime($date));
$begin = date('Y-m-d 00:00:00', strtotime("$date -" . ($w ? $w - $first : 6) . ' days'));
$end = date('Y-m-d 23:59:59', strtotime("$begin +6 days"));
return ['begin' => strtotime($begin), 'end' => strtotime($end)];
}