Ver Mensaje Individual
  #2 (permalink)  
Antiguo 20/01/2009, 15:10
Avatar de Falhor
Falhor
 
Fecha de Ingreso: diciembre-2005
Ubicación: Buenos Aires
Mensajes: 425
Antigüedad: 20 años, 9 meses
Puntos: 5
Respuesta: Saber el tiempo restante entre una fecha con hora y la actual

Bueno, ya lo logre, por si a alguno le interesa lo hice adaptando esta funcion a lo que queria:

Código PHP:
<?php

/**
 * this code assumes php >= 5.1.0. if using < 5.1, read
 * php.net/strtotime and change the condition for checking
 * for failure from strtotime()
 */

// $t1, $t2: unix times, or strtotime parseable
// $precision: max number of units to output
// $abbr: if true, use "hr" instead of "hour", etc.
function date_diff ($t1, $t2, $precision = 6, $abbr = false) {
    if (
preg_match('/\D/', $t1) && ($t1 = strtotime($t1)) === false)
        return 
false;

    if (
preg_match('/\D/', $t2) && ($t2 = strtotime($t2)) === false)
        return 
false;

    if (
$t1 > $t2)
        list(
$t1, $t2) = array($t2, $t1);

    
$diffs = array(
        
'year' => 0, 'month' => 0, 'day' => 0,
        
'hour' => 0, 'minute' => 0, 'second' => 0,
    );

    
$abbrs = array(
        
'year' => 'yr', 'month' => 'mth', 'day' => 'day',
        
'hour' => 'hr', 'minute' => 'min', 'second' => 'sec'
    
);

    foreach (
array_keys($diffs) as $interval) {
        while (
$t2 >= ($t3 = strtotime("+1 ${interval}", $t1))) {
            
$t1 = $t3;
            ++
$diffs[$interval];
        }
    }

    
$stack = array();
    foreach (
$diffs as $interval => $num)
        
$stack[] = array($num, ($abbr ? $abbrs[$interval] : $interval) . ($num != 1 ? 's' : ''));

    
$ret = array();
    while (
count($ret) < $precision && ($item = array_shift($stack)) !== null) {
        if (
$item[0] > 0)
            
$ret[] = "{$item[0]} {$item[1]}";
    }

    return 
implode(', ', $ret);
}

$t1 = 'Feb 4, 2008 12:16:00';
$t2 = 'Jul 3, 2006 16:15:30';

echo 
date_diff($t1, $t2), "\n",
    
date_diff($t1, $t2, 3), "\n",
    
date_diff($t1, $t2, 2, true), "\n";

?>