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;
}
"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");
?>
Gracias por todo...
DW