<?php
//当前日期
$sdefaultDate = date("Y-m-d");
//$first =1 表示每周星期一为开始日期 0表示每周日为开始日期
$first=1;
//获取当前周的第几天 周日是 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"));
echo "$week_start"."$week_end";
参考链接:
https://blog.csdn.net/adminyan/article/details/79639800
/*PHP获取当前日期是第几周和本周开始日期和本周结束日期*/
//$now = '2018-11-13';周二
public function getNowTimeInfo($now)
{
$str = array();
//$first =1 表示每周星期一为开始日期 0表示每周日为开始日期
$str['year'] = date('Y', strtotime($now));
$first = 1;
//当日在整年中的第几周
$str['week'] = date('W', strtotime($now));
//获取当前周的第几天 周日是 0 周一到周六是 1 - 6
$w = date('w', strtotime($now));
//获取本周开始日期,如果$w是0,则表示周日,减去 6 天
$week_start = date('Y-m-d', strtotime("$now -" . ($w ? $w - $first : 6) . ' days'));
$str['week_start'] = $week_start;
//本周结束日期
$week_end = date('Y-m-d', strtotime("$week_start +6 days"));
$str['week_end'] = $week_end;
return $str;
}
返回值:
Array
(
[year] => 2018
[week] => 46
[week_start] => 2018-11-12//周一
[week_end] => 2018-11-18//周日
)
--------------------------------------------------- 分割线 ------------------------------------------------------------------------------------------------------------
/**
* 获取一年每周的开始日期和结束日期
* @param $year
* @return mixed
*/
public static function get_week($year)
{
$year_start = $year . "-01-01";
$year_end = $year . "-12-31";
$startday = strtotime($year_start);
if (intval(date('N', $startday)) != '1') {
$startday = strtotime("next monday", strtotime($year_start)); //获取年第一周的日期
}
$year_mondy = date("Y-m-d", $startday); //获取年第一周的日期
$endday = strtotime($year_end);
if (intval(date('W', $endday)) == '7') {
$endday = strtotime("last sunday", strtotime($year_end));
}
//$num = intval(date('W', $endday));可以获取当年以前的年份有多少周,如果是当年还没到12-31号$num为1
$num = 52;//一年约52周
for ($i = 1; $i <= $num; $i++) {
$j = $i - 1;
$start_date = date("Y-m-d", strtotime("$year_mondy $j week "));
$end_day = date("Y-m-d", strtotime("$start_date +6 day"));
$week_array[$i] = array(
$start_date, $end_day);
}
return $week_array;
}
//PHP计算两个日期的差值
$sdate = new DateTime("1949-10-01");
$edate = new DateTime();
$interval = $sdate->diff($edate);
echo "差值 : " . $interval->y . " 年, " . $interval->m." 月, ".$interval->d." 天 ";
参考链接: https://blog.csdn.net/sinat_15955423/article/details/84033680