[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 メーリングリストの案内