Ver Mensaje Individual
  #1 (permalink)  
Antiguo 09/08/2008, 16:16
j4xl
 
Fecha de Ingreso: agosto-2008
Mensajes: 3
Antigüedad: 15 años, 8 meses
Puntos: 0
APORTE: Fecha en Español

Hola,
Este foro ha aportado mucho a mis conocimientos sobre php y html, cada vez que buscaba en google alguna duda una de las primeras respuestas, y casi siempre la mas útil estaba en este foro... por eso he decidido registrarme y que mejor forma de empezar que hacer una pequeña aportación.
Se trata de una función muy sencilla y que puede ayudar a mucha gente, su funcionamiento es el mismo que el date() pero lo escribe en español. Lo he pensado con la posibilidad de añadir mas idiomas... adjunto el código, esta un poco comentado.

Consta de dos archivos... este primero contiene la función...

p ej: "Fecha.php"
Código PHP:
/*    Los Separadores por defecto son '|' pero si se quiere asignar
    cualquier otro separador tan solo hay que pasarlo como segundo argumento,
    ej fecha("a#y#s", "#");
    "a": am o pm
    "A": AM o PM
    "B": Tiempo de internet 000 a 999
    "c": Fecha ISO 8601
    "d": 01 a 31
    "D": Mon, Thu...
    "F": Enero a Diciembre
    "g": 1 a 12 horas
    "G": 0 a 23 horas
    "h": 01 a 12 horas
    "H": 00 a 23 horas
    "i": 00 a 59 horas
    "I": 1 formato ahorro, 0 no
    "j": 1 a 31
    "l": Lunes a Domingo
    "L": 1 año bisiesto, 0 no
    "m": mes 01 a 12
    "M": Ene a Dic
    "n": mes 1 a 12
    "O": GTM en horas
    "r": Fecha estilo RFC 2822 (Ingles)
    "s": Segundos 00 a 59
    "S": Sufijos en ingles de los dias de la semana
    "t": Numero del dias del mes 28 a 31
    "T": Formato temporal del ordenador con el que trabaja
    "U": Segundos al estilo de la epoca UNIX
    "W": Numero de la semana del año empezando por Lunes
    "Y": año con 4 digitos
    "y": año con 2 digitos
    "z": dia del Año 0 a 365
    "Z": Zona temporal contada en segundos */
    
function fecha($formato$Separador "|"$Idioma "Esp"){
        if(
file_exists ($Idioma.".php")){
            include 
$Idioma.".php";
        }else{
            echo 
"Falta archivo de idioma";
            return 
date("r");
        }
        
$Fecha "";
        
$expFormato explode($Separador$formato);
        foreach(
$expFormato as $argumento){
            if(
ereg($argumento"a A B c d g G h H i I j L m n O s S t T W Y y z Z"))
                
$Fecha .= date($argumento);
            else{
                switch(
$argumento){
                    case 
"D"/*Lun a Dom*/
                        
$Fecha .= $DiaC[date("w")];
                        break;
                    case 
"F":/*Enero a Diciembre*/
                        
$Fecha .= $Mes[date("n")-1];
                        break;
                    case 
"l":/*Lunes a Domingo*/
                        
$Fecha .= $Dia[date("w")];
                        break;
                    case 
"M":/*Ene a Dic*/
                        
$Fecha .= $MesC[date("n")-1];
                        break;
                    case 
"r":/*Fecha preFormateada*/
                        
$Aux ereg_replace(date("D"), $DiaC[date("w")], date("r"));
                        
$Aux ereg_replace(date("M"), $MesC[date("n")-1], $Aux);
                        
$Fecha .= $Aux;
                        break;
                    case 
"U":/*Fecha Unix*/
                        
$Fecha .= ereg_replace(date("F"), $Mes[date("n")-1], date("U"));
                        break;
                    default:
                        
$Fecha .= $argumento;
                }
            }
        }
        return 
$Fecha;
    } 
este otro la traducción...

"Esp.php"
Código PHP:
<?php
    $Dia 
= array("Domingo","Lunes","Martes","Miércoles","Jueves","Viernes","Sábado");
    
$DiaC = array("Dom","Lun","Mar","Mié","Jue","Vie","Sáb");
    
$Mes = array("Enero","Febrero","Marzo","Abril","Mayo","Junio","Julio","Agosto","Septiembre","Octubre","Noviembre","Diciembre"); 
    
$MesC = array("Ene","Feb","Mar","Abr","May","Jun","Jul","Ago","Sep","Oct","Nov","Dic");
?>
Si por ejemplo quisiéramos el Catalán como idioma, tan solo se tendría que cambiar este archivo o bien añadir otro "Cat.php" y con un 3er parámetro en la función elegir el idioma mediante un switch.

Gracias por todo...

DW

Última edición por j4xl; 10/08/2008 a las 06:30 Razón: Actualizacion del Codigo