Week Number ?

From: Date: Fri, 04 Aug 2000 10:22:00 +0000
Subject: Week Number ?
Groups: php.general 
Request: Send a blank email to php-general+get-10105@lists.php.net to get a copy of this message
Hi Dragos, Found this script somewhere on my travels :o) Hope this helps, Regards, - Paul - <?php /* weeknumber.php3 (int) get_week_number($timestamp) Week number of year with Monday as first day of the week (1...53). If the week containing January 1 has four or more days in the new year, then it is considered week 1; otherwise, it is week 53 of the previous year, and the next week is week 1. (See the ISO 8601: 1988 standard.) Adapted from GNU sh-utils for PHP3 by Stefan Röhrich, sr@linux.de, http://home.pages.de/~sr/. */ function is_leap_year($year) if ((($year % 4) == 0 and ($year % 100)!=0) or ($year % 400)==0) return 1; } else return 0; } } /* #define ISO_WEEK_START_WDAY 1 // Monday #define ISO_WEEK1_WDAY 4 // Thursday #define YDAY_MINIMUM (-366) int big_enough_multiple_of_7 = (-YDAY_MINIMUM / 7 + 2) * 7; return (yday - (yday - wday + ISO_WEEK1_WDAY + big_enough_multiple_of_7) % 7 + ISO_WEEK1_WDAY - ISO_WEEK_START_WDAY); */ function iso_week_days($yday, $wday) return $yday - (($yday - $wday + 382) % 7) + 3; } function get_week_number($timestamp) $d = getdate($timestamp); $days = iso_week_days($d[ "yday"], $d[ "wday"]); if ($days < 0) $d[ "yday"] += 365 + is_leap_year(--$d[ "year"]); $days = iso_week_days($d[ "yday"], $d[ "wday"]); } else $d[ "yday"] -= 365 + is_leap_year($d[ "year"]); $d2 = iso_week_days($d[ "yday"], $d[ "wday"]); if (0 <= $d2) /* $d["year"]++; */ $days = $d2; } } return (int)($days / 7) + 1; } ?>

« previous php.general (#10105) next »