PHP:Para poner la fecha en español igual que con DATE()

De Foros del Web

Pues yo aquí les comparto una función que hice para usar la función date(); con formato en español...

Se usa IGUALITO que date, sólo que con la ventaja de que el input puede ser en formato de fecha de MySQL (20031016) o un time (mktime) o nada (), y el formato sigue las mismas reglas que la función date();

Código PHP:

function date_es($formato="F j, Y",$fecha=0) { 
    if (ereg ("([0-9]{4})-([0-9]{1,2})-([0-9]{1,2})", $fecha,$partes)) { 
        if (checkdate($partes[2],$partes[3],$partes[1])) { 
            $fecha=strtotime($fecha); 
        } else { 
            return(-1); 
        } 
    } elseif ($fecha==0) { 
        $fecha=time(); 
    } 
    $dias=array("Domingo","Lunes","Martes","Miercoles","Jueves","Viernes","Sabado"); 
    $dias_c=array("Dom","Lun","Mar","Mie","Jue","Vie","Sab"); 
    $meses=array("","Enero","Febrero","Marzo","Abril","Mayo","Junio","Julio","Agosto","Septiembre","Octubre","Noviembre","Diciembre"); 
    $meses_c=array("","Ene","Feb","Mar","Abr","May","Jun","Jul","Ago","Sep","Oct","Nov","Dic"); 
 
    $valores=explode("|",date ("a|A|B|d|D|F|g|G|h|H|i|I|j|l|L|m|M|n|O|r|s|S|t|T|U|w|W|Y|y|z|Z",$fecha)); 
    $claves= array ("a","A","B","d","D","F","g","G","h","H","i","I","j","l","L","m","M","n","O","r","s","S","t","T","U","w","W","Y","y","z","Z"); 
    for ($i=0;$i<count($claves);$i++) { 
        $conv[$claves[$i]]=$valores[$i]; 
    } 
    $conv["D"]=$dias_c[$conv["w"]]; 
    $conv["l"]=$dias[$conv["w"]]; 
    $conv["F"]=$meses[$conv["n"]]; 
    $conv["M"]=$meses_c[$conv["n"]]; 
    $conv["r"]=$conv["D"].", ".$conv["d"]." ".$conv["M"]." ".$conv["Y"]." ".$conv["H"].":".$conv["i"].":".$conv["s"]." ".$conv["O"]; 
    $conv["S"]="o"; 
    $escape='\\\\\\'; 
    $escapado=0; 
    $f=$formato; 
    $res=""; 
    for ($t=0;$t<strlen($formato);$t++) { 
        if ($escapado==1) { 
            $res.=$f{$t}; 
            $escapado=0; 
        } else { 
            if($f{$t}==$escape) { 
                $escapado=1; 
            } else { 
                if (isset($conv[$f[$t]])){ 
                    $res.=$conv[$f[$t]]; 
                } else { 
                    $res.=$f{$t}; 
                } 
            } 
        } 
    } 
    return $res; 
}  



--Manoloweb 17 Oct 2003

Este artículo es parte de las FAQs de PHP y el Manual de PHP.

Herramientas personales