note 98605 added to datetime.diff

From: Date: Fri, 25 Jun 2010 19:19:05 +0000
Subject: note 98605 added to datetime.diff
Groups: php.notes 
Request: Send a blank email to php-notes+get-170472@lists.php.net to get a copy of this message
/* Sergio Abreu's datediff * Contact: http://sites.sitesbr.net * Function s_datediff means (Special or Sergio Abreu's) datediff * Returns decimal portions of two different datetimes. * Converts string representations of date automatically. * First param examples: "s" for seconds "i" for minutes "h" for hours "d" for days "m" for months "y" for years Shownegatives is optional, and default is false, to use absolute function on the result (never negative). */ function s_datediff( $str_interval, $dt_menor, $dt_maior, $shownegative=false){ if( is_string( $dt_menor)) $dt_menor = date_create( $dt_menor); if( is_string( $dt_maior)) $dt_maior = date_create( $dt_maior); $diff = date_diff( $dt_menor, $dt_maior, ! $shownegative); switch( $str_interval){ case "y": $total = $diff->y + $diff->m / 12; break; case "m": $total= $diff->y * 12 + $diff->m + $diff->d/30; break; case "d": $total = $diff->y * 365.25 + $diff->m * 30 + $diff->d + $diff->h/24; break; case "h": $total = ($diff->y * 365.25 + $diff->m * 30 + $diff->d) * 24 + $diff->h + $diff->i/60; break; case "i": $total = (($diff->y * 365.25 + $diff->m * 30 + $diff->d) * 24 + $diff->h) * 60 + $diff->i + $diff->s/60; break; case "s": $total = ((($diff->y * 365.25 + $diff->m * 30 + $diff->d) * 24 + $diff->h) * 60 + $diff->i)*60 + $diff->s; break; } if( $diff->invert) return -1 * $total; else return $total; } Enjoy, and comment if you liked. ---- Server IP: 69.147.83.197 Probable Submitter: 189.79.161.100 ---- Manual Page -- http://www.php.net/manual/en/datetime.diff.php Edit -- https://master.php.net/note/edit/98605 Del: integrated -- https://master.php.net/note/delete/98605/integrated Del: useless -- https://master.php.net/note/delete/98605/useless Del: bad code -- https://master.php.net/note/delete/98605/bad+code Del: spam -- https://master.php.net/note/delete/98605/spam Del: non-english -- https://master.php.net/note/delete/98605/non-english Del: in docs -- https://master.php.net/note/delete/98605/in+docs Del: other reasons-- https://master.php.net/note/delete/98605 Reject -- https://master.php.net/note/reject/98605 Search -- https://master.php.net/manage/user-notes.php

« previous php.notes (#170472) next »