diff options
author | rvelices <rv-github@modusoptimus.com> | 2009-01-31 01:12:20 +0000 |
---|---|---|
committer | rvelices <rv-github@modusoptimus.com> | 2009-01-31 01:12:20 +0000 |
commit | 340563c29869baca6de9dcd4240ec8999ab2f2fa (patch) | |
tree | 1b8e9e34b30ce9ef4cc9e28bbb75aa04a2060523 /include | |
parent | 41658cba9e096613ecc0eff32dc7681c8d2c9321 (diff) |
merge r3117 from trunk:
- fix use $page['nb_image_page'] instead of $user... when creating the nav bar (same as category_default)
- rewrote function format_date without regular expressions (faster); parameter date type is not used anymore (but I left it there for now)
git-svn-id: http://piwigo.org/svn/branches/2.0@3118 68402e56-0260-453c-a942-63ccdbb3a9ee
Diffstat (limited to '')
-rw-r--r-- | include/functions.inc.php | 54 |
1 files changed, 17 insertions, 37 deletions
diff --git a/include/functions.inc.php b/include/functions.inc.php index ca4276876..0607f550a 100644 --- a/include/functions.inc.php +++ b/include/functions.inc.php @@ -578,54 +578,34 @@ function format_date($date, $type = 'us', $show_time = false) { global $lang; - list($year,$month,$day,$hour,$minute,$second) = array(0,0,0,0,0,0); + $ymdhms = array(); + $tok = strtok( $date, '- :'); + while ($tok !== false) + { + $ymdhms[] = $tok; + $tok = strtok('- :'); + } - switch ( $type ) + if ( count($ymdhms)<3 ) { - case 'us' : - { - list($year,$month,$day) = explode('-', $date); - break; - } - case 'unix' : - { - list($year,$month,$day,$hour,$minute) = - explode('.', date('Y.n.j.G.i', $date)); - break; - } - case 'mysql_datetime' : - { - preg_match('/^(\d{4})-(\d{2})-(\d{2}) (\d{2}):(\d{2}):(\d{2})$/', - $date, $out); - list($year,$month,$day,$hour,$minute,$second) = - array($out[1],$out[2],$out[3],$out[4],$out[5],$out[6]); - break; - } - case 'mysql_date' : - { - preg_match('/^(\d{4})-(\d{2})-(\d{2})$/', - $date, $out); - list($year,$month,$day) = - array($out[1],$out[2],$out[3]); - break; - } + return false; } + $formated_date = ''; // before 1970, Microsoft Windows can't mktime - if ($year >= 1970) + if ($ymdhms[0] >= 1970) { // we ask midday because Windows think it's prior to midnight with a // zero and refuse to work - $formated_date.= $lang['day'][date('w', mktime(12,0,0,$month,$day,$year))]; + $formated_date.= $lang['day'][date('w', mktime(12,0,0,$ymdhms[1],$ymdhms[2],$ymdhms[0]))]; } - $formated_date.= ' '.$day; - $formated_date.= ' '.$lang['month'][(int)$month]; - $formated_date.= ' '.$year; - if ($show_time) + $formated_date.= ' '.$ymdhms[2]; + $formated_date.= ' '.$lang['month'][(int)$ymdhms[1]]; + $formated_date.= ' '.$ymdhms[0]; + if ($show_time and count($ymdhms)>=5 ) { - $formated_date.= ' '.$hour.':'.$minute; + $formated_date.= ' '.$ymdhms[3].':'.$ymdhms[4]; } - return $formated_date; } |