Tema: Clase PHP
Ver Mensaje Individual
  #1 (permalink)  
Antiguo 13/01/2005, 08:50
Avatar de thunder-ion
thunder-ion
 
Fecha de Ingreso: diciembre-2004
Mensajes: 106
Antigüedad: 20 años, 3 meses
Puntos: 0
Clase PHP

He programado una clase que maneja las fechas, acabo de comenzar con esto de las clases y me gustaria saber si voy bien encaminado.

Código PHP:
class fecha{
    
    var 
$correccion=0# Si el servidor va con retraso.
    
var $instante_unix;
    
    function 
fecha(){
        
$this->instante_unix=time()+$this->correccion;
    }
    function 
formatear($formato,$timestamp){
        
$fecha=date($formato,$timestamp);
        
$dias_semana_en=array("Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday");
        
$dias_semana_es=array("Domingo","Lunes","Martes","Miércoles","Jueves","Viernes","Sábado");
        
$fecha=str_replace($dias_semana_en,$dias_semana_es,$fecha);
        
$meses_en=array("January","February","March","April","May","June","July","August","September","October","November","December");
        
$meses_es=array("Enero","Febrero","Marzo","Abril","Mayo","Junio","Julio","Agosto","Septiembre","Octubre","Noviembre","Diciembre");
        
$fecha=str_replace($meses_en,$meses_es,$fecha);
        return 
$fecha;
    }
    function 
dia($timestamp){
        return 
date('j',$timestamp);
    }
    function 
mes($timestamp,$formato='numero'){
        
$mes=date('n',$timestamp);
        if(
$formato=='letra'){
            switch(
$mes){
                case 
1: return 'Enero'; case 2: return 'Febrero'; case 3: return 'Marzo'; case 4: return 'Abril';
                case 
5: return 'Mayo'; case 6: return 'Junio'; case 7: return 'Julio'; case 8: return 'Agosto';
                case 
9: return 'Septiembre'; case 10: return 'Octubre'; case 11: return 'Noviembre'; case 12: return 'Diciembre';
            }
        }
        elseif(
$formato=='numero'){
            return 
$mes;
        }
    }
    function 
ano($timestamp,$formato='largo'){
        if(
$formato=='largo'){
            return 
date('Y',$timestamp);
        }
        elseif(
$formato=='corto'){
            return 
date('y',$timestamp);
        }
    }
    function 
dia_semana($formato,$dia,$mes,$ano,$timestamp=0){
        if(empty(
$timestamp)){
            
$formato=mktime(0,0,0,$mes,$dia,$ano);
        }
        else{
            
$formato=$timestamp;
        }
        
$dia_semana=date('w',$formato);
        if(
$dia_semana==0){
            
$dia_semana=7;
        }
        if(
$formato=='letra'){
            switch(
$dia_semana){
                case 
1: return 'Lunes'; case 2: return 'Martes'; case 3: return 'Miércoles';
                case 
4: return 'Jueves'; case 5: return 'Viernes'; case 6: return 'Sábado';
                case 
7: return 'Domingo';
            }
        }
        elseif(
$formato=='numero'){
            return 
$dia_semana;
        }
    }
    function 
ultimo_dia_mes($mes,$ano,$timestamp=0){
        
$ultimo_dia=28;
        if(!empty(
$timestamp)){
            
$mes=$this->mes($timestamp,'numero');
            
$ano=$this->ano($timestamp);
        }
        while(
checkdate($mes,$ultimo_dia+1,$ano)){
            
$ultimo_dia++;
        }
        return 
$ultimo_dia;
    }

¿Que cambios puedo hacer? ¿Deberia meter el nombre de los meses y de los días de la semana en un array?

Gracias