[PHP-users 17650]指定日付から週始と週終を得るには?
aiko
vvv_aiko_vvv @ hotmail.com
2003年 9月 3日 (水) 05:18:51 JST
お世話になっております。きしかわです。
サンプルを元に
指定日付が、どの週なのか( 週の開始日 月曜日 )を調べる関数を作成しました。
ただこの関数には問題があって、日曜日を指定した場合、次週になってしまいます。
指定日付 2003.09.07
<希望結果>
週の始 2003.09.01
週の終 2003.09.07
<実際>
週の始 2003.09.08
週の終 2003.09.14
if($day_of_week==0) $day_of_week=6 ;
の様に分けてみようと思ったりもしましたが、スマートではないし、
週の始、週の終はつじつまが合わないし…
どなたか少しアドバイスいただけませんでしょうか。
**************** サンプル ****************
<?php
$this_week = array();
$this_week = get_week(2003, 8, 31);
print_r($this_week);
function get_week($yyyy, $mm, $dd)
{
$now_date = mktime(0, 0, 0, $mm, $dd, $yyyy);
$day_of_week = 0;
$day_of_year = 0;
sscanf(strftime("%w %j", $now_date), "%d %3d", &$day_of_week,
&$day_of_year);
// 日曜(週の始)〜土曜(週の終)の場合
/*********
$this_week[0] = strftime("%Y-%m-%d", mktime(0, 0, 0, 1, $day_of_year -
$day_of_week, $yyyy)); // 週の始
$this_week[1] = strftime("%Y-%m-%d", mktime(0, 0, 0, 1, $day_of_year +
(6 - $day_of_week), $yyyy)); // 週の終
// ↓ ↓ ↓
//
// 月曜(週の始)〜日曜(週の終)にしたい。
//
// ☆☆日曜指定の場合上手く行かない☆☆
//
*********/
$sWork=$day_of_week-1 ; // 週始めを月曜日にする。
// 月曜(週の始)〜日曜(週の終)の場合
$this_week[0] = strftime("%Y-%m-%d", mktime(0, 0, 0, 1, $day_of_year -
$sWork, $yyyy));
// 週の始
$this_week[1] = strftime("%Y-%m-%d", mktime(0, 0, 0, 1, $day_of_year +
(6 - $sWork), $yyyy)); // 週の終
return $this_week;
}
?>
*******************************************
#ちなみに、get_week(2003, 08, 31);を指定した場合08→0になってしまいます。
intval()してみても、0??他の方法で数値変換する必要がありますか?
(便乗質問で申し訳ないです)
きしかわあいこ。
_________________________________________________________________
会員登録は無料 充実した出品アイテムなら MSN オークション
http://auction.msn.co.jp/
PHP-users メーリングリストの案内