X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=include%2Fdatetime.php;h=f7be5bdb11666d789af3f3a908515671583b7af9;hb=01a871c991e00ee1d61ea9f1a1c35fa3eb667b1a;hp=02250ec073e3c87633b26b3660d0aa51eeb42512;hpb=627c65b49ffafb2c1584bbdf865a5d655d4877d3;p=friendica.git diff --git a/include/datetime.php b/include/datetime.php index 02250ec073..f7be5bdb11 100644 --- a/include/datetime.php +++ b/include/datetime.php @@ -5,8 +5,8 @@ if(! function_exists('timezone_cmp')) { function timezone_cmp($a, $b) { if(strstr($a,'/') && strstr($b,'/')) { - if ($a == $b) return 0; - return ($a < $b) ? -1 : 1; + if ( t($a) == t($b)) return 0; + return ( t($a) < t($b)) ? -1 : 1; } if(strstr($a,'/')) return -1; if(strstr($b,'/')) return 1; @@ -41,9 +41,9 @@ function select_timezone($current = 'America/Los_Angeles') { } else { $city = $ex[0]; - if($continent != 'Miscellaneous') { + if($continent != t('Miscellaneous')) { $o .= ''; - $continent = 'Miscellaneous'; + $continent = t('Miscellaneous'); $o .= ''; } } @@ -171,11 +171,12 @@ function relative_date($posted_date) { // Returns age in years, given a date of birth, // the timezone of the person whose date of birth is provided, // and the timezone of the person viewing the result. -// Why? Bear with me. Let's say I live in Mittagong, Australia. My birthday -// is on New Year's. You live in San Bruno, California. +// Why? Bear with me. Let's say I live in Mittagong, Australia, and my +// birthday is on New Year's. You live in San Bruno, California. // When exactly are you going to see my age increase? -// A: 5:00 AM Dec 31. That's when I start celebrating, and when -// my birthday arrives in your timezone. +// A: 5:00 AM Dec 31 San Bruno time. That's precisely when I start +// celebrating and become a year older. If you wish me happy birthday +// on January 1 (San Bruno time), you'll be a day late. function age($dob,$owner_tz = '',$viewer_tz = '') { if(! intval($dob)) @@ -195,3 +196,114 @@ function age($dob,$owner_tz = '',$viewer_tz = '') { $year_diff--; return $year_diff; } + + + +// Get days in month +// get_dim($year, $month); +// returns number of days. +// $month[1] = 'January'; +// to match human usage. + +if(! function_exists('get_dim')) { +function get_dim($y,$m) { + + $dim = array( 0, + 31, 28, 31, 30, 31, 30, + 31, 31, 30, 31, 30, 31); + + if($m != 2) + return $dim[$m]; + if(((($y % 4) == 0) && (($y % 100) != 0)) || (($y % 400) == 0)) + return 29; + return $dim[2]; +}} + + +// Returns the first day in month for a given month, year +// get_first_dim($year,$month) +// returns 0 = Sunday through 6 = Saturday +// Months start at 1. + +if(! function_exists('get_first_dim')) { +function get_first_dim($y,$m) { + $d = sprintf('%04d-%02d-01 00:00', intval($y), intval($m)); + return datetime_convert('UTC','UTC',$d,'w'); +}} + +// output a calendar for the given month, year. +// if $links are provided (array), e.g. $links[12] => 'http://mylink' , +// date 12 will be linked appropriately. Today's date is also noted by +// altering td class. +// Months count from 1. + + +// TODO: provide (prev,next) links, define class variations for different size calendars + + +if(! function_exists('cal')) { +function cal($y = 0,$m = 0, $links = false) { + + + // month table - start at 1 to match human usage. + + $mtab = array(' ', + 'January','February','March', + 'April','May','June', + 'July','August','September', + 'October','November','December' + ); + + $thisyear = datetime_convert('UTC',date_default_timezone_get(),'now','Y'); + $thismonth = datetime_convert('UTC',date_default_timezone_get(),'now','m'); + if(! $y) + $y = $thisyear; + if(! $m) + $m = intval($thismonth); + + $dn = array('Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'); + $f = get_first_dim($y,$m); + $l = get_dim($y,$m); + $d = 1; + $dow = 0; + $started = false; + + if(($y == $thisyear) && ($m == $thismonth)) + $tddate = intval(datetime_convert('UTC',date_default_timezone_get(),'now','j')); + + $str_month = day_translate($mtab[$m]); + $o = ''; + $o .= ""; + for($a = 0; $a < 7; $a ++) + $o .= ''; + $o .= ''; + + while($d <= $l) { + if(($dow == $f) && (! $started)) + $started = true; + $today = (((isset($tddate)) && ($tddate == $d)) ? "class=\"today\" " : ''); + $o .= "'; + $dow ++; + if(($dow == 7) && ($d <= $l)) { + $dow = 0; + $o .= ''; + } + } + if($dow) + for($a = $dow; $a < 7; $a ++) + $o .= ''; + $o .= '
$str_month $y
' . mb_substr(day_translate($dn[$a]),0,3,'UTF-8') . '
"; + $day = str_replace(' ',' ',sprintf('%2.2d', $d)); + if($started) { + if(is_array($links) && isset($links[$d])) + $o .= "$day"; + else + $o .= $day; + $d ++; + } + else + $o .= ' '; + $o .= '
 
'."\r\n"; + + return $o; +}}