1.PHP中计算一个时间段中有多少天:
$start = ‘2018-10-16’;
$end = ‘2019-1-23’;
time=strtotime($end) - strtotime($start);
$day = $time/(3600*24);
echo $day; //99
2.指定时间段中的所有时间
function getDateFromRange($startDate, $endDate)
{
$sTimestamp = strtotime($startDate);
$eTimestamp = strtotime($endDate);
// 计算日期段内有多少天
$days = ($eTimestamp - $sTimestamp) / 86400 + 1;
// 保存每天日期
$date = array();
for ($i = 0; $i < $days; $i++) {
$date[] = date('Y-m-d', $sTimestamp + (86400 * $i));
}
return $date;
}
echo getDateFromRange('2018-12-20','2019-1-26'); //结果是包括起始时间内的所有时间
3.时间段去掉 周六 周日
function removeWeek($start,$end)
{
$time = [];
$timeRange = self::getDateFromRange($start,$end);
foreach ($timeRange as $k=>$v){
$date = strtotime($v);
if(date('w', $date)!=0 && date('w', $date) != 6){
$time[$k] = $v;
}
}
return $time;
}
echo removeWeek('2018-12-20','2019-1-26'); //结果是去掉每周的周六和周日的所有时间,包括起始时间
4.指定天的周一和周天
function getWeek($day){
$week = [];
$lastday = date('Y-m-d', strtotime("$day Sunday"));
$firstday = date('Y-m-d', strtotime("$lastday -6 days"));
return $week[] = ['firstday' => $firstday, 'lastday' => $lastday];
}
echo getWeek('2018-12-26'); // array('firstday'=>'2018-12-24','lastday'=>'2018-12-30')
5.指定天的当月第一天和月最后一天
function getmonths($day){
$month = [];
$firstday = date('Y-m-01', strtotime($day));
$lastday = date('Y-m-d', strtotime("$firstday +1 month -1 day"));
return $month[] = ['firstday' => $firstday, 'lastday' => $lastday]
}
echo getWeek('2018-12-26'); // array('firstday'=>'2018-12-01','lastday'=>'2018-12-31')