[PHP-users 17651]Re: 指定日付から週始と週終を得るには?

Hiroyuki Nashida nashida @ wm.namco.co.jp
2003年 9月 3日 (水) 15:02:32 JST


無田と申します。
function get_week($yyyy, $mm, $dd) 
{
 $now_date = mktime(0,0,0,$mm,$dd,$yyyy);
 $w = (intval(date("w",$now_date)) + 6) % 7;
 
 $this_week[0] = date("Y-m-d",$now_date - 86400 * $w);
 $this_week[1] = date("Y-m-d",$now_date + 86400 * (6 - $w));
 
 return $this_week;
}
こんな感じでどうでしょうか。
- Hiroyuki Nashida (e-mail: nashida @ wm.namco.co.jp)
- NAMCO Ltd. Web&Mobile Contents Business Group
- TEL: +81-45-461-8146
- FAX: +81-45-461-8148
----- Original Message ----- 
From: "aiko" <vvv_aiko_vvv @ hotmail.com>
To: <php-users @ php.gr.jp>
Sent: Wednesday, September 03, 2003 2:18 PM
Subject: [PHP-users 17650] 指定日付から週始と週終を得るには?
> お世話になっております。きしかわです。
>> サンプルを元に
> 指定日付が、どの週なのか( 週の開始日 月曜日 )を調べる関数を作成しました。
> ただこの関数には問題があって、日曜日を指定した場合、次週になってしまいます。
>>> 指定日付 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 mailing list
> PHP-users @ php.gr.jp
> http://ns1.php.gr.jp/mailman/listinfo/php-users
>


PHP-users メーリングリストの案内

AltStyle によって変換されたページ (->オリジナル) /