php代码
/** * 获取一年中所有星期的起始日期 * @param $year 格式 'YYYY' * 返回二维数组 下标 key1值对应一年中某一天所在周的实际年份 key2值对应一年中某一天所在的周数[一年中第几周] * 返回false 日期格式错误 */ function get_all_weeks($year){ $week_arr = array(); $year = intval(trim($year)); $preg = "/^\d{4,}$/"; if(!preg_match($preg, $year)){ return false; } $begin_day = $year . '-01-01'; $end_day = $year . '-12-31'; //一年第一个星期一 if(date('w',strtotime($begin_day))!=1){ $begin_day = date('Y-m-d',strtotime("next monday", strtotime($begin_day))); } //第一个星期一所在周数 $begin_week_num = intval(date('W',strtotime($begin_day))); //一年最后一个星期天 if(date('w',strtotime($end_day))!=0){ $end_day = date('Y-m-d',strtotime("last sunday",strtotime($end_day))); //存在跨年的星期,跨年所在周星期一 $end_day_next = date('Y-m-d',strtotime($end_day)+24*60*60); //跨年星期所属年份与所在周数 $stride_year = date('o',strtotime($end_day_next)); $stride_weeknum = intval(date('W',strtotime($end_day_next))); } //最后一个星期天所在周数 $end_week_num = intval(date('W',strtotime($end_day))); //一年第一个周一为一年的第一周或者第二周 if($begin_week_num!=1){ $i=2; }else{ $i=1; } $j = 0; for($i;$i<=$end_week_num;$i++){ $start_date = date("Y-m-d", strtotime("$begin_day $j week")); $end_day = date("Y-m-d", strtotime($start_date . '+6 day')); $week_arr[$year][$i] = array( $start_date, $end_day ); $j++; } if($end_day_next){ $week_arr[$stride_year][$stride_weeknum] = array( $end_day_next, date("Y-m-d", strtotime($end_day_next . '+6 day')) ); } return $week_arr; } //demo_调用 /* $year = '2013'; if(get_all_weeks($year)){ var_dump(get_all_weeks($year)); }else{ echo '日期格式出错'; } */ /** * 获取某一天所在周的起始日期 * 依赖 function get_all_weeks * @param $day 格式:'YYYY-mm-dd' * 返回false 日期格式错误 * 正确,返回json "{"begin_day":"YYYY-mm-dd","end_day":"YYYY-mm-dd"}" */ function get_day_week($day){ $date_arr = explode('-', trim($day)); if(!checkdate(intval($date_arr[1]), intval($date_arr[2]), intval($date_arr[0]))){ return false; } $year = date('Y',strtotime($day)); $weeks = get_all_weeks($year); //某一天所属的年份与周数 $real_year = date('o',strtotime($day)); $week_num = intval(date('W',strtotime($day))); if(!empty($weeks[$real_year][$week_num][0])) $begin_day = $weeks[$real_year][$week_num][0]; if(!empty($weeks[$real_year][$week_num][1])) $end_day = $weeks[$real_year][$week_num][1]; //跨年周数值存储于上一年中 if(empty($begin_day)||empty($end_day)){ $year = date('Y',strtotime($day))-1; $weeks = get_all_weeks($year); $real_year = date('o',strtotime($day)); $week_num = intval(date('W',strtotime($day))); if(!empty($weeks[$real_year][$week_num][0])) $begin_day = $weeks[$real_year][$week_num][0]; if(!empty($weeks[$real_year][$week_num][1])) $end_day = $weeks[$real_year][$week_num][1]; } $the_day = array( 'begin_day' => $begin_day, 'end_day' => $end_day ); $the_day = json_encode($the_day); return $the_day; } //demo_调用 /* $day = '2014-01-01'; if(get_day_week($day)){ var_dump(get_day_week($day)); }else{ echo '日期格式出错'; } */
성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

Video Face Swap
완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

인기 기사
어 ass 신 크리드 그림자 : 조개 수수께끼 솔루션
1 몇 달 전ByDDD
Windows 11 KB5054979의 새로운 기능 및 업데이트 문제를 해결하는 방법
3 몇 주 전ByDDD
Atomfall에서 크레인 제어 키 카드를 찾을 수 있습니다
1 몇 달 전ByDDD
KB5055523을 수정하는 방법 Windows 11에 설치되지 않습니까?
2 몇 주 전ByDDD
Inzoi : 학교 및 대학에 지원하는 방법
3 몇 주 전ByDDD

뜨거운 도구

VSCode Windows 64비트 다운로드
Microsoft에서 출시한 강력한 무료 IDE 편집기

SublimeText3 Linux 새 버전
SublimeText3 Linux 최신 버전

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

mPDF
mPDF는 UTF-8로 인코딩된 HTML에서 PDF 파일을 생성할 수 있는 PHP 라이브러리입니다. 원저자인 Ian Back은 자신의 웹 사이트에서 "즉시" PDF 파일을 출력하고 다양한 언어를 처리하기 위해 mPDF를 작성했습니다. HTML2FPDF와 같은 원본 스크립트보다 유니코드 글꼴을 사용할 때 속도가 느리고 더 큰 파일을 생성하지만 CSS 스타일 등을 지원하고 많은 개선 사항이 있습니다. RTL(아랍어, 히브리어), CJK(중국어, 일본어, 한국어)를 포함한 거의 모든 언어를 지원합니다. 중첩된 블록 수준 요소(예: P, DIV)를 지원합니다.
