Ⅰ php計算一年多少個星期和每周的開始和結束日期
PHP計算一年多少個星期和每周的開始和結束日期?方法如下:
方法一:
<php
header("Content-type:text/html;charset=utf-8");
date_default_timezone_set("Asia/Shanghai");
$year = (int)$_GET['year'];
$week = (int)$_GET['week'];
$weeks = date("W", mktime(0, 0, 0, 12, 28, $year));
echo $year . '年一共有' . $weeks . '周<br />';
if ($week > $weeks || $week <= 0)
{
$week = 1;
}
if ($week < 10)
{
$week = '0' . $week;
}
$timestamp['start'] = strtotime($year . 'W' . $week);
$timestamp['end'] = strtotime('+1 week -1 day', $timestamp['start']);
echo $year . '年第' . $week . '周開始時間戳:' . $timestamp['start'] . '<br />';
echo $year . '年第' . $week . '周結束時間戳:' . $timestamp['end'] . '<br />';
echo $year . '年第' . $week . '周開始日期:' . date("Y-m-d", $timestamp['start']) . '<br />';
echo $year . '年第' . $week . '周結束日期:' . date("Y-m-d", $timestamp['end']);
?>
方法二: <?php
header("Content-type:text/html;charset=utf-8");
function getIsoWeeksInYear($year)
{
$date = new DateTime;
$date->setISODate($year, 53);
return ($date->format("W") === "53" ? 53 : 52);
}
function weekday($custom_date)
{
$week_start = date('d-m-Y', strtotime('this week monday', $custom_date));
$week_end = date('d-m-Y', strtotime('this week sunday', $custom_date));
$week_array[0] = $week_start;
$week_array[1] = $week_end;
return $week_array;
}
echo '<br> Weeks in 2013<br>' . getIsoWeeksInYear(2013);
$weekday = weekday(strtotime(date('d-m-Y', strtotime('5-8-2013'))));
echo '<br> 10-8-2013';
echo '<br>Start: ' . $weekday[0];
echo '<br>End: ' . $weekday[1];
?>
或者方法三:
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));
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 (
str_replace("-",
".",
$start_date
), str_replace("-", ".", $end_day));
}
return $week_array;
}
函數get_week()通過傳入參數$year年份,獲取當年第一天和最後一天所在的周數,計算第一周的日期,通過循環獲取每一周的第一天和最後一天的日期。最後返回是一個數組。
想得到指定周數的開始日期和結束日期,比如2011年第18周的開始日期和結束日期,代碼如下:
復制代碼 代碼如下:
$weeks = get_week(2011);
echo '第18周開始日期:'.$weeks[18][0].'';
echo '第18周結束日期:'.$weeks[18][1];
最後輸出結果:
第18周開始日期:2011.05.02
第18周結束日期:2011.05.08
Ⅱ PHP 計算某日是這一年的第幾周
在判斷某一天是哪一年的第幾周的時候,根據採用的國際標准(忘了叫什麼名字了),年首或者年末的那幾天有可能不屬於今年的第一周或者最後一周。
代碼如下:
<?php
echo date("oW",strtotime("20141229"))." ";
echo date("oW",strtotime('20160101'))." ";
?>
(2)php獲取第幾周擴展閱讀
php計算時間段的天數:
$firstday = date("Y-m-d H:i:s",time());//當前日期
$timestamp=strtotime($firstday);//當前日期時間戳
$firstday=date('Y-m-01',strtotime(date('Y',$timestamp).'-'.(date('m',$timestamp)-1).'-01'));//上個月開始的日期
$lastday=date('Y-m-d',strtotime("$firstday +1 month -1 day"));//上個月結束的日期
$stimestamp = strtotime($firstday);
$etimestamp = strtotime($lastday);// 計算日期段內有多少天
$days = ($etimestamp-$stimestamp)/86400+1;// 保存每天日期
$date = array();
for($i=0; $i<$days; $i++){
$date[] = date('Y-m-d', $stimestamp+(86400*$i));
}
Ⅲ PHP怎樣顯示周數
date函數可以獲取指定時間是當年的第幾周,所以,減一下就OK了,比如
date('W',strtotime('2015-4-11'))-date('W',strtotime('2015-4-1'))+1
Ⅳ 急求!php 已經知道第幾周 如何用第幾周知道是幾年幾月幾號 到 幾年幾月幾號
<?php
//獲取當前年份
$year = date('Y');
// $year = 2009;
//2009-01-01 星期4 $firstweekday=4
$firstWeekDay = date('w',strtotime($year.'-01-01'));
if($firstWeekDay === 0)
$firstWeekDay = 7;
//第二周的周一 = 1號 + 8-1號所屬的周幾
//這個地方8天比較難理解,可以好好思考
$secondMonday = 9-$firstWeekDay;
$secondMondayDate = $year.'-01-0'.$secondMonday;
echo $secondMondayDate,'<br />';
//當前周 W 是從周一開始的
$currentWeek = date('W');
//這里的3周和之前的8天很類似 關於日期的計算果然很麻煩阿 哈哈
$pastDays = ($currentWeek - 3)*7;
echo $currentWeek,' | ',$pastDays,'<br />';
//上周的星期一
$lastWeekMonday = date('Y-m-d',strtotime($secondMondayDate." + $pastDays days"));
echo $lastWeekMonday;
瞧代碼的話...思路轉換很重要...不要被既有的事物束縛了...
Ⅳ PHP中獲取星期的幾種方法
PHP星期幾獲取代碼:
1 date("l");
2 //data就可以獲取英文的星期比如Sunday
3 date("w");
4 //這個可以獲取數字星期比如123,注意0是星期日
獲取中文星期幾:
1 $weekarray=array("日","一","二","三","四","五","六");
2 //先定義一個數組
3 echo "星期".$weekarray[date("w")];
獲取指定日期是:
1 $weekarray=array("日","一","二","三","四","五","六");
2 echo "星期".$weekarray[date("w","2011-11-11")];
因為date函數非常強大,他完全可以勝任一切這樣的工作我附個手冊里的表吧 方便隨時查閱
1 a - "am" 或是 "pm"
2 A - "AM" 或是 "PM"
3 d - 幾日,二位數字,若不足二位則前面補零; 如: "01" 至 "31"
4 D - 星期幾,三個英文字母; 如: "Fri"
5 F - 月份,英文全名; 如: "January"
6 h - 12 小時制的小時; 如: "01" 至 "12"
7 H - 24 小時制的小時; 如: "00" 至 "23"
8 g - 12 小時制的小時,不足二位不補零; 如: "1" 至 12"
9 G - 24 小時制的小時,不足二位不補零; 如: "0" 至 "23"
10 i - 分鍾; 如: "00" 至 "59"
11 j - 幾日,二位數字,若不足二位不補零; 如: "1" 至 "31"
12 l - 星期幾,英文全名; 如: "Friday"
13 m - 月份,二位數字,若不足二位則在前面補零; 如: "01" 至 "12"
14 n - 月份,二位數字,若不足二位則不補零; 如: "1" 至 "12"
15 M - 月份,三個英文字母; 如: "Jan"
16 s - 秒; 如: "00" 至 "59"
17 S - 字尾加英文序數,二個英文字母; 如: "th","nd"
18 t - 指定月份的天數; 如: "28" 至 "31"
19 U - 總秒數
20 w - 數字型的星期幾,如: "0" (星期日) 至 "6" (星期六)
21 Y - 年,四位數字; 如: "1999"
22 y - 年,二位數字; 如: "99"
23 z - 一年中的第幾天; 如: "0" 至 "365"
Ⅵ php date()函數得到當前第幾周,值是從0開始還是1
date('W'); 從一開始的!
『W』 ISO-8601 格式年份中的第幾周,每周從星期一開始(PHP 4.1.0 新加的) 例如:42(當年的第 42 周)
Ⅶ php 怎樣獲取當天是第幾周
這就要用到PHP自帶的強大的date()函數了。直接上代碼。
<?php
header("Content-Type:text/html;charset=utf-8");//可不要,在這里只是為了讓確定字元格式,防止亂碼。
$week=date('W');
echo'今天是一年中的第'.$week.'周';
?>
Ⅷ 用php怎麼編寫當前時間是屬於第幾周
<?php
$start = mktime(0,0,0,05,01,2011); //學期開始時間,格式為時、分、秒、月、日、年
$now = time(); //當前時間
$w = ceil(($now-$start)/(3600*24*7));
echo "當前位於第$w周";
?>
Ⅸ PHP里如何跟據日期獲取本日是本年的第幾周
用到知識點:PHP時間轉換函數。
<?php
header('content-type:text/html;charset=utf-8');
echo'今天是'.date('Y',time()).'年第'.date('W',time()).'周';
效果預覽: