29 Jun 1999 09:52:11 -0500 (EDT) ** (as specified in RFC 822) -- 'Tue' is optional ** ** $Id$ **/ if (defined ('date_php')) return; define ('date_php', true); // corrects a time stamp to be the local time function getGMTSeconds($stamp, $gmt) { global $invert_time; if (($gmt == 'Pacific') || ($gmt == 'PST')) $gmt = '-0800'; else if (($gmt == 'EDT')) $gmt = '-0400'; else if (($gmt == 'Eastern') || ($gmt == 'EST') || ($gmt == 'CDT')) $gmt = '-0500'; else if (($gmt == 'Central') || ($gmt == 'CST') || ($gmt == 'MDT')) $gmt = '-0600'; else if (($gmt == 'Mountain') || ($gmt == 'MST') || ($gmt == 'PDT')) $gmt = '-0700'; else if ($gmt == 'BST') $gmt = '+0100'; else if ($gmt == 'EET') $gmt = '+0200'; else if ($gmt == 'GMT') $gmt = '+0000'; else if ($gmt == 'HKT') $gmt = '+0800'; else if ($gmt == 'IST') $gmt = '+0200'; else if ($gmt == 'JST') $gmt = '+0900'; else if ($gmt == 'KST') $gmt = "+0900"; else if ($gmt == 'MET') $gmt = '+0100'; else if ($gmt == 'MET DST' || $gmt == 'METDST') $gmt = '+0200'; if (substr($gmt, 0, 1) == '-') { $neg = true; $gmt = substr($gmt, 1, strlen($gmt)); } else if (substr($gmt, 0, 1) == '+') { $neg = false; $gmt = substr($gmt, 1, strlen($gmt)); } else $neg = false; $gmt = substr($gmt, 0, 2); $gmt = $gmt * 3600; if ($neg == true) $gmt = "-$gmt"; else $gmt = "+$gmt"; /** now find what the server is at **/ $current = date('Z', time()); if ($invert_time) $current = - $current; $stamp = (int)$stamp - (int)$gmt + (int)$current; return $stamp; } /** Switch system has been intentionaly choosed for the internationalization of month and day names. The reason is to make sure that _("") strings will go into the main po. **/ function getDayName( $day_number ) { switch( $day_number ) { case 0: $ret = _("Sunday"); break; case 1: $ret = _("Monday"); break; case 2: $ret = _("Tuesday"); break; case 3: $ret = _("Wednesday"); break; case 4: $ret = _("Thursday"); break; case 5: $ret = _("Friday"); break; case 6: $ret = _("Saturday"); break; default: $ret = ''; } return( $ret ); } function getMonthName( $month_number ) { switch( $month_number ) { case '01': $ret = _("January"); break; case '02': $ret = _("February"); break; case '03': $ret = _("March"); break; case '04': $ret = _("April"); break; case '05': $ret = _("May"); break; case '06': $ret = _("June"); break; case '07': $ret = _("July"); break; case '08': $ret = _("August"); break; case '09': $ret = _("September"); break; case '10': $ret = _("October"); break; case '11': $ret = _("November"); break; case '12': $ret = _("December"); break; default: $ret = ''; } return( $ret ); } function date_intl( $date_format, $stamp ) { $ret = str_replace( 'D', '$1', $date_format ); $ret = str_replace( 'F', '$2', $ret ); $ret = date( '$3'. $ret . '$3', $stamp ); // Workaround for a PHP 4.0.4 problem $ret = str_replace( '$1', substr( getDayName( date( 'w', $stamp ) ), 0, 3 ), $ret ); $ret = str_replace( '$2', getMonthName( date( 'm', $stamp ) ), $ret ); $ret = str_replace( '$3', '', $ret ); return( $ret ); } function getLongDateString( $stamp ) { return( date_intl( _("D, F j, Y g:i a"), $stamp ) ); } function getDateString( $stamp ) { global $invert_time; $now = time(); $dateZ = date('Z', $now ); if ($invert_time) $dateZ = - $dateZ; $midnight = $now - ($now % 86400) - $dateZ; if ($midnight < $stamp) { // Today $date_format = _("g:i a"); } else if ($midnight - 518400 < $stamp) { // This week $date_format = _("D, g:i a"); } else { // before this week $date_format = _("M j, Y"); } return( date_intl( $date_format, $stamp ) ); // return( date( $date_i, $stamp ) ); } function getTimeStamp($dateParts) { /** $dateParts[0] == Mon, Tue, Wed ** $dateParts[1] == 23 ** $dateParts[2] == Jan, Feb, Mar ** $dateParts[3] == 1999 ** $dateParts[4] ==