本文实例讲述了PHP获取日期对应星期、一周日期、星期开始与结束日期的方法。分享给大家
本文实例讲述了PHP获取日期对应星期、一周日期、星期开始与结束日期的方法。分享给大家供大家参考,具体如下:
/*
* 获取日期对应的星期
* 参数$date为输入的日期数据,格式如:2018-6-22
*/
function get_week($date)
{
//强制转换日期格式
$date_str = date('Y-m-d', strtotime($date));
//封装成数组
$arr = explode("-", $date_str);
//参数赋值
//年
$year = $arr[0];
//月,输出2位整型,不够2位右对齐
$month = sprintf('%02d', $arr[1]);
//日,输出2位整型,不够2位右对齐
$day = sprintf('%02d', $arr[2]);
//时分秒默认赋值为0;
$hour = $minute = $second = 0;
//转换成时间戳
$strap = mktime($hour, $minute, $second, $month, $day, $year);
//获取数字型星期几
$number_wk = date("w", $strap);
//自定义星期数组
$weekArr = array("0", "1", "2", "3", "4", "5", "6");
//获取数字对应的星期
return $weekArr[$number_wk];
}
/**
* 获取一周日期
* @param $time 时间戳
* @param $format 转换格式
*/
function get_week($time, $format = "Y-m-d") {
$week = date('w',$time);
$weekname=array('星期一','星期二','星期三','星期四','星期五','星期六','星期日');
//星期日排到末位
if(empty($week)){
$week=7;
}
for ($i=0;$i<=6;$i++){
$data[$i]['date'] = date($format,strtotime( '+'. $i+1-$week .' days',$time));
$data[$i]['week'] = $weekname[$i];
}
return $data;
}
/*
* 获取某星期的开始时间和结束时间
* time 时间
* first 表示每周星期一为开始日期 0表示每周日为开始日期
*/
function getWeekMyActionAndEnd($time = '', $first = 1)
{
//当前日期
if (!$time) $time = time();
$sdefaultDate = date("Y-m-d", $time);
//$first =1 表示每周星期一为开始日期 0表示每周日为开始日期
//获取当前周的第几天 周日是 0 周一到周六是 1 - 6
$w = date('w', strtotime($sdefaultDate));
//获取本周开始日期,如果$w是0,则表示周日,减去 6 天
$week_start = date('Y-m-d', strtotime("$sdefaultDate -" . ($w ? $w - $first : 6) . ' days'));
//本周结束日期
$week_end = date('Y-m-d', strtotime("$week_start +6 days"));
return array("week_start" => $week_start, "week_end" => $week_end);
}
PS:这里再为大家推荐几款时间及日期相关工具供大家参考:
在线日期/天数计算器: http://tools.jb51.net/jisuanqi/date_jisuanqi
在线日期计算器/相差天数计算器: http://tools.jb51.net/jisuanqi/datecalc
在线日期天数差计算器: http://tools.jb51.net/jisuanqi/onlinedatejsq
Unix时间戳(timestamp)转换工具: http://tools.jb51.net/code/unixtime
PHP 日期 星期 开始日期 结束日期