ホームページ > php教程 > PHP源码 > 获取一年内的星期列表及每周起始时间

获取一年内的星期列表及每周起始时间

PHP中文网
リリース: 2016-05-25 17:03:40
オリジナル
993 人が閲覧しました

我在网上找了半天,找到的都是不能用的,没辙就自己写了一个。
别跟我讨论是不是最优算法,多几个CPU时钟周期,死不了。

public static function getWeeks($format="second",$year=null){
if($year == null){
$year=date('Y');
}
$second_of_day = 24*3600;
$year_start = $year ."-01-01 00:00:00"; 
$year_end = $year ."-12-31 23:59:59"; 
$startday = strtotime($year_start); 
$day_of_week = date('N', $startday);
$first_week_start=$startday;
$first_week_end = $startday+(7-$day_of_week)*$second_of_day+$second_of_day-1;
$week_array[0]=array($first_week_start,$first_week_end);

$endday = strtotime($year_end); 
$day_of_week = date('N', $endday);

$last_week_start=$endday-$day_of_week*$second_of_day+1;
$last_week_end = $endday;
$last_week=array($last_week_start,$last_week_end);

$during = $last_week_start - $first_week_end;

$during_total_week = intval($during/(7*$second_of_day));

for($i=0;$i<$during_total_week;$i++){
$week_array[$i+1]=array($first_week_end+(7*$i*$second_of_day)+1,$first_week_end+(($i+1)*$second_of_day*7));
}

$week_array[$during_total_week+1]=$last_week;

if($format !="second"){
foreach($week_array as $i => $week){
$week_array_of_date_format[$i]=array(date($format,$week[0]),date($format,$week[1]));
}
return $week_array_of_date_format;
}

return $week_array;
}
ログイン後にコピー
関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のおすすめ
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート