<?
  
/********************************************
   Autor: Zubyc

   Funciones variadas para manejo de fechas:

   Cuando insertamos en una base de datos una fecha en formato DATE o DATETIME,
   nos encontramos con que el formato usado es distinto al que estamos acostumbrados

            Base de datos MySQL          Nosotros :)
                2002-06-22              22-06-2002

   Debido a esto, no podemos mostrar directamente el campo fecha en nuestra
   web porque no saldría como queremos.

   La mayoría de funciones que hay a continuación son para mostrar representaciones
   de fechas a partir del formato DATE o DATETIME.
   No son especialmente brillantes pero funcionan y pueden resultar útiles.
   Con el tiempo, las iré mejorando e incluso haré una clase para el manejo
   de fechas, pero mientras, quedaros con estas :)

   Para cualquier duda: zorelake@hotmail.com


   Podeis encontrar cosas tan sencillas como éstas o bien más complicadas en:
                               http://php-hispano.net

   **********************************************************/





  /*******************************************************

    Función  fecha_pasada()

    Calcula si han pasado un número determinado de días a partir de una fecha dada

    Entrada: - Fecha en formato DATETIME -> YYYY-MM-DD HH:MM:SS
             - Número de dias

    Salida:  - true   : Han pasado esos dias desde la fecha dada.
             - false  : Los dias introducidos todavía no han pasado.

  *************************************************************/

  
function fecha_pasada ($datetime$dias) {
    
// YYYY-MM-DD HH:MM:SS
    
$y substr ($datetime04); $mo substr ($datetime52);
    
$d substr ($datetime82); $h substr ($datetime122);
    
$m substr ($datetime152); $s substr ($datetime182);
    
$time time () - mktime ($h$m$s$mo$d$y);
    if (
$time $dias 24 60 60) {
        return 
true;
    } else {
        return 
false;
    }
}


 
/****************************************************
   Funcion obtener_fecha_texto()

    Convierte una fecha a texto, pasando los meses de números a palabras
    ( 1 -> Enero, 2-> Febrero,...)

    Entrada: Fecha en formato DATE -> YYYY/mm/dd
    Salida: Cadena de texto del tipo: "12 de Febrero del 2002"

**************************************************************/

 
function obtener_fecha_texto($fecha)
 {
  
$nombres_mes=array(1=>"Enero""Febrero""Marzo""Abril""Mayo",   "Junio""Julio""Agosto""Septiembre""Octubre""Noviembre",  "Diciembre"  );

 
$ano=substr($fecha,0,4);
 
$mes=substr($fecha,5,2);
 
$dia=substr($fecha,8,2);

 
$dia=(integer)$dia;
 
$mes=(integer)$mes;
 
$mes=$nombres_mes[$mes];


  
$cadena=$dia." de ".$mes." del ".$ano;
  return(
$cadena);
 }



 
/**************************************************************
   Función obtener_fecha_dmY       -> SALIDA: 20/07/2002

   A partir de una fecha en formato DATE (YYYY-mm-dd)
   devuelve una cadena de texto del tipo:   20/07/2002
*****************************************************************/

 
function obtener_fecha_dmY($fecha)
 {
  
$nombres_mes=array(1=>"Enero""Febrero""Marzo""Abril""Mayo",   "Junio""Julio""Agosto""Septiembre""Octubre""Noviembre",  "Diciembre"  );

 
$ano=substr($fecha,0,4);
 
$mes=substr($fecha,5,2);
 
$dia=substr($fecha,8,2);

 
$dia=(integer)$dia;
 
$mes=(integer)$mes;
 
$mes=$nombres_mes[$mes];


  
$cadena=$dia."/".$mes."/".$ano;
  return(
$cadena);
 }


/******************************************************************
   Función obtener_fecha_hora       -> SALIDA: 20/07/2002 23:40

   A partir de una fecha en formato DATETIME (YYYY-mm-dd HH:MM:SS)
   devuelve una cadena de texto del tipo:   20/07/2002 23:40
********************************************************************/

function obtener_fecha_hora($fecha)
{
  
$ano=substr($fecha,0,4);
  
$mes=substr($fecha,5,2);
  
$dia=substr($fecha,8,2);

  
$hora=substr($fecha,11,5);

  
$cadena="$dia/$mes/$ano $hora";
  return(
$cadena);

}


/**********************************************************************
   Función obtener_fecha_hora_texto  -> SALIDA: 12 de Marzo del 2002 a las 13:45

   A partir de una fecha en formato DATETIME (YYYY-mm-dd HH:MM:SS)
   devuelve una cadena de texto del tipo:   12 de Marzo del 2002 a las 13:45
****************************************************************************/

function obtener_fecha_hora_texto($fecha)
{
  
$nombres_mes=array(1=>"Enero""Febrero""Marzo""Abril""Mayo",   "Junio""Julio""Agosto""Septiembre""Octubre""Noviembre",  "Diciembre"  );

  
$ano=substr($fecha,0,4);
  
$mes=substr($fecha,5,2);
  
$dia=substr($fecha,8,2);

  
$dia=(int)$dia;
  
$mes=(int)$mes;
  
$mes=$nombres_mes[$mes];

  
$hora=substr($fecha,11,5);

  
$cadena="$dia de $mes del $ano a las $hora";
  return(
$cadena);

}
?>
PHP-Hispano.net - Porque al final, todos acabamos aprendiendo.