0) { $rv .= $div . " day"; if ($div != 1) { $rv .= "s"; } $found = 1; } $div = floor($mod / (60*60)); $mod = $mod % (60*60); if ($found || $div > 0) { if ($found) { $rv .= ", "; } $rv .= $div . " hour"; if ($div != 1) { $rv .= "s"; } $found = 1; } $div = floor($mod / 60); $mod = $mod % 60; if ($found || $div > 0) { if ($found) { $rv .= ", "; } $rv .= $div . " minute"; if ($div != 1) { $rv .= "s"; } $found = 1; } $div = $mod; $mod = 0; if ($found) { $rv .= " and "; } $rv .= $div . " second"; if ($div != 1) { $rv .= "s"; } return $rv; } function format_time_left_announcements($event_name, $date) { return '
\n"; } function time_left_announcements() { global $now; $events = array( # It's good to remove or comment out past events in order to use less CPU. # Some local conventions: # Start time is sometimes a guess. # 2006 array( 'Anime North', mktime(18, 0, 0, 5, 25, 2006) ), array( 'Toronto Trek', mktime(18, 0, 0, 7, 7, 2006) ), array( 'Northern Anime Festival', mktime( 9, 0, 0, 7, 22, 2006) ), array( 'Hobbystar\'s FanExpo', mktime(16, 0, 0, 9, 1, 2006) ), # 2007 array( 'Anime North', mktime(18, 0, 0, 5, 24, 2007) ), #array( 'Toronto Trek', mktime( ?, 0, 0, ?, ?, 2007) ), #array( 'Northern Anime Festival', mktime( ?, 0, 0, ?, ?, 2007) ), #array( 'Hobbystar\'s FanExpo', mktime( ?, 0, 0, ?, ?, 2007) ), ); $now = time(); $now_parts = localtime($now); $target = mktime( $now_parts[2], $now_parts[1], $now_parts[0], 1+$now_parts[4]+2, # "+2" means "Announce events 3 months in advance." $now_parts[3], 1900+$now_parts[5], $now_parts[8] ); foreach ($events as $event) { if ($event[1] > $now && $event[1] <= $target) { echo(format_time_left_announcements($event[0], $event[1])); } } } ?>