Tema: FAQ's de PHP
Ver Mensaje Individual
  #184 (permalink)  
Antiguo 06/09/2007, 14:42
Avatar de nicolaspar
nicolaspar
 
Fecha de Ingreso: noviembre-2004
Ubicación: Villa Ballester Bs-As|Ar
Mensajes: 2.002
Antigüedad: 21 años, 10 meses
Puntos: 34
Re: FAQ's de PHP

Tema: Fechas
Pregunta:
Hay manera de lograr multiples formatos en español sobre una fecha?

Respuesta: No, pero con la siguiente función se puede lograr todos los formatos que necesites, yo la hice especificamente para un proyecto, pero se puede adaptar facilmente, y de no entender como pueden preguntar en el foro de php.

Estos serían algunos ejemplos:
Código PHP:
#Example:
get_date_spanish(time(), true, 'month'); # return Enero
get_date_spanish(time(), true, 'month_mini'); # return ENE
get_date_spanish(time(), true, 'Y'); # return 2007
get_date_spanish(time());#return 06 de septiempre, 12:31 hs 
Código PHP:
#Power by nicolaspar 2007 - especific proyect
function get_date_spanish( $time, $part = false, $formatDate = '' ){
    
#Declare n compatible arrays
    
$month = array("","enero", "febrero", "marzo", "abril", "mayo", "junio", "julio", "agosto", "septiempre", "diciembre");#n
    
$month_execute = "n"; #format for array month

    
$month_mini = array("","ENE", "FEB", "MAR", "ABR", "MAY", "JUN", "JUL", "AGO", "SEP", "DIC");#n
    
$month_mini_execute = "n"; #format for array month

    
$day = array("domingo","lunes","martes","miércoles","jueves","viernes","sábado"); #w
    
$day_execute = "w";
    
    
$day_mini = array("DOM","LUN","MAR","MIE","JUE","VIE","SAB"); #w
    
$day_mini_execute = "w";

/*
Other examples:
    Whether it's a leap year
    $leapyear = array("Este año febrero tendrá 28 días"."Si, estamos en un año bisiesto, un día más para trabajar!"); #l
     $leapyear_execute = "L";
*/

    #Content array exception print "HOY", position content the name array. Duplicate value and key for optimization in comparative
    
$print_hoy = array("month"=>"month", "month_mini"=>"month_mini");

    if( 
$part === false ){
        return 
date("d", $time) . " de " . $month[date("n",$time)] . ", ". date("H:i",$time) ." hs";
    }elseif( 
$part === true ){
        if( ! empty( 
$print_hoy[$formatDate] ) && date("d-m-Y", $time ) == date("d-m-Y") ) return "HOY"; #Exception HOY
        
if( ! empty( ${$formatDate} ) && !empty( ${$formatDate}[date(${$formatDate.'_execute'},$time)] ) ) return ${$formatDate}[date(${$formatDate.'_execute'},$time)];
        else return 
date($formatDate, $time);
    }else{
        return 
date("d-m-Y H:i", $time);
    }
} 
__________________
Mi punto de partida es Que Bueno Lo Nuevo