Ver Mensaje Individual
  #8 (permalink)  
Antiguo 04/03/2011, 21:41
leif_sk8er
 
Fecha de Ingreso: junio-2009
Mensajes: 309
Antigüedad: 14 años, 10 meses
Puntos: 5
Respuesta: Calcular desfase horario segun la zona

Pues si que funciona bien la funcion... al hacerla rapido y despues de tanto estar con fechas ya no veia con claridad los resultados en las pruebas... pero ahora sin estar todo el dia en el ordenador, he hecho tests y parece que si que va bien...

echo date("d/m/Y H:i:s",desfase($fechaComent, $desfaseUsuario));
Te da la fecha exacta del post del comentario... para saber cuantos minutos hace, yo uso esta funcion:

Código PHP:
Ver original
  1. function haceCuanto($fecha, $fecha_final){
  2. //$lenguaje=$_SESSION['LANGUAGE'];
  3. //include(includeFile($lenguaje.'.php'));
  4.  
  5. $lang = array(
  6.             'segundo' => 'segundo',
  7.             'segundos' => 'segundos',
  8.             'minutos' => 'minutos',
  9.             'minuto' => 'minuto',
  10.             'hora' => 'hora',
  11.             'horas' => 'horas',
  12.             'aproximadamente' => 'aproximádamente',
  13.             'dias' => 'días',
  14.             'dia' => 'dia',
  15.             'ano' => 'año',
  16.             'anos' => 'años',
  17.             'mes' => 'mes',
  18.             'meses' => 'meses',
  19.             );
  20.  
  21.     // Función creada por Iván Ibarra [www.famezstudios.com]
  22.  
  23.     $fecha = $fecha - $_SESSION['WP']['TIMEZONE'];
  24.     $fecha_final = $fecha_final - $_SESSION['WP']['TIMEZONE'];
  25.    
  26.    
  27.    
  28.     $tiempo = $fecha_final-$fecha;
  29.  
  30.    
  31.      if(round($tiempo / 31536000) <= 0){
  32.         if(round($tiempo / 2678400) <= 0){
  33.              if(round($tiempo / 86400) <= 0){
  34.                  if(round($tiempo / 3600) <= 0){
  35.                     if(round($tiempo / 60) <= 0){
  36.                         if($tiempo <= 60){
  37.                         $can = $tiempo;
  38.                         if($can == 1) {    $word = $lang['segundo']." "; } else {    $word = $lang['segundos']." "; }
  39.                         $hace = " " .$tiempo. " ".$word." ";
  40.                         }
  41.                     } else {
  42.                         $can = round($tiempo / 60);
  43.                         if($can <= 1) {    $word = $lang['minuto']." "; } else {    $word = $lang['minutos']." "; }
  44.                         $hace = " " .$can. " ".$word." ";  
  45.                     }
  46.                 } else {
  47.                     $can = round($tiempo / 3600);
  48.                     if($can <= 1) {    $word = $lang['hora']." "; } else {    $word = $lang['horas']." "; }
  49.                     $hace = " ".$lang['aproximadamente']." " .$can. " ".$word;
  50.                 }
  51.             } else {
  52.                 $can = round($tiempo / 86400);
  53.                 if($can <= 1) {    $word = $lang['dia']." "; } else {    $word = $lang['dias']." "; }
  54.                 $hace = "  ".$lang['aproximadamente']." " .$can. " ".$word." ";
  55.             }
  56.         } else {
  57.             $can = round($tiempo / 2678400);  
  58.             if($can <= 1) {    $word = $lang['mes']." "; } else { $word = $lang['meses']." "; }
  59.             $hace = "  ".$lang['aproximadamente']." " .$can. " ".$word;
  60.         }
  61.     } else {
  62.         $can = round($tiempo / 31536000);
  63.         if($can <= 1) {    $word = $lang['ano']." ";} else { $word = $lang['anos']." "; }
  64.         $hace = "  ".$lang['aproximadamente']." " .$can. " ".$word;
  65.     }
  66.     // Mensaje
  67.     return $hace;
  68. }

Solo hay que restarle el desfase a ambas fechas y te saca cuantos minutos, segundos y horas...