Hi all!
Here are a code i wrote for a administrationpanel about 3 month ago.
You use it as following, 15 days from now: calcTime("15 days"), 15 days ago from now: calcTime("15 days", "-"), also if you want get 1 years from now: calcTime("1 year") and calcTime("3 years"), calcTime("1 week", "-") and so on.
PHP Code:
function calcTime( $t = '1 day', $p = '+' )
{
$time = time();
$t = preg_replace(array("/\s/", "/\n/"), "", trim($t));
if( preg_match("/(\d{1,3})(sec|second|seconds|min|minute|minutes|hour|hours|day|days|week|weeks|month|months|year|years)/", $t, $r) )
{
$num = ( !is_numeric($r[1]) ? 1 : $r[1] );
$what = $r[2];
switch( $what )
{
case 'year':
case 'years':
if( $p == '-' )
return ( $time - ( ( 60 * 60 * 24 * 365 ) * $num ) );
else
return ( $time + ( ( 60 * 60 * 24 * 365 ) * $num ) );
break;
case 'month':
case 'months':
if( $p == '-' )
return ( $time - ( ( 60 * 60 * 24 * 30 ) * $num ) );
else
return ( $time + ( ( 60 * 60 * 24 * 30 ) * $num ) );
break;
case 'week':
case 'weeks':
if( $p == '-' )
return ( $time - ( ( 60 * 60 * 24 * 7 ) * $num ) );
else
return ( $time + ( ( 60 * 60 * 24 * 7 ) * $num ) );
break;
case 'day':
case 'days':
if( $p == '-' )
return ( $time - ( ( 60 * 60 * 24 ) * $num ) );
else
return ( $time + ( ( 60 * 60 * 24 ) * $num ) );
break;
case 'hour':
case 'hours':
if( $p == '-' )
return ( $time - ( ( 60 * 60 ) * $num ) );
else
return ( $time + ( ( 60 * 60 ) * $num ) );
break;
case 'sec':
case 'second':
case 'seconds':
if( $p == '-' )
return ( $time - $num );
else
return ( $time + $num );
break;
case 'min':
case 'minute':
case 'minutes':
default:
if( $p == '-' )
return ( $time - ( 60 * $num ) );
else
return ( $time + ( 60 * $num ) );
break;
}
}
else
{
if( $p == '-' )
return ( $time - ( ( 60 * 60 * 24 ) * 1 ) );
else
return ( $time + ( ( 60 * 60 * 24 ) * 1 ) );
}
}
Ex: One month ago,
PHP Code:
$ctime = calcTime("1 month", "-");
echo "1 month ago is: " . date("d/m/Y", $ctime);
Questions?
Best regards,
mbrodin
Bookmarks