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;
}
}
Gracias