Foros del Web » Programando para Internet » PHP »

Ayuda para un principiante

Estas en el tema de Ayuda para un principiante en el foro de PHP en Foros del Web. Hola a todos, antes de nada gracias anticipadas a todos. Mi problema es el siguiente, tengo este script para mostrar el dia de la semana, ...
  #1 (permalink)  
Antiguo 11/11/2003, 07:31
FxV
 
Fecha de Ingreso: marzo-2003
Mensajes: 17
Antigüedad: 21 años, 8 meses
Puntos: 0
Ayuda para un principiante

Hola a todos, antes de nada gracias anticipadas a todos.

Mi problema es el siguiente, tengo este script para mostrar el dia de la semana, dia del mes y mes en mi página. querría saber cómo modificarlo para poder mostrar el día anterior. Sé que es muy simple pero llevo toda la mañana y no consigo hacerlo:

<?
$dia["Monday"] = "Lunes";
$dia["Tuesday"] = "Martes";
$dia["Wednesday"] = "Miércoles";
$dia["Thursday"] = "Jueves";
$dia["Friday"] = "Viernes";
$dia["Saturday"] = "Sábado";
$dia["Sunday"] = "Domingo";

function getDia($day) {
return $dia[$day];
}

$mes["January"] = "Enero";
$mes["Febrary"] = "Febrero";
$mes["March"] = "Marzo";
$mes["April"] = "Abril";
$mes["May"] = "Mayo";
$mes["June"] = "Junio";
$mes["July"] = "Julio";
$mes["August"] = "Agosto";
$mes["September"] = "Septiembre";
$mes["October"] = "Octubre";
$mes["November"] = "Noviembre";
$mes["December"] = "Diciembre";

function getMes($month){
return $mes[$month];
}

$month = Date(F);

$day = Date(l);

getDia($day);
getMes($month);

print "Hoy es : <B>";
print "$dia[$day] ";
print Date(d)." ";
print "$mes[$month] ";
print Date(Y);
print "</B>";


/** Parte a modificar

print "Ayer fue : <B>";
print "$dia[$day] ";
print Date(d)." ";
print "$mes[$month] ";
print Date(Y);
print "</B>";

*/



?>

El resultado debería ser :

Hoy es : Martes 11 Noviembre 2003
Ayer fue: Lunes 10 Noviembre 2003

gracias
  #2 (permalink)  
Antiguo 11/11/2003, 07:45
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 22 años, 5 meses
Puntos: 16
Hola,

Puedes usar mktime() (www.php.net/mktime) para crear la fecha anterior a hoy. Seria algo asi:
Código PHP:
$ayer_ts=mktime(0,0,0,date('m'),date('d'),date('Y'));
$dia_ayer=date('l',$ayer_ts);
$mes_ayer=date('F',$ayer_ts);

echo 
$dia[$dia_ayer];
echo 
$mes[$mes_ayer]; 
Por cierto, yo no usaria los nombres de los en ingles como indices del array de "traduccion". Yo usaria el numero del mes (date('m')). Para los dias de la semana no se si existe algo parecido.

Saludos.
__________________
Josemi

Aprendiz de mucho, maestro de poco.
  #3 (permalink)  
Antiguo 11/11/2003, 08:48
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 10 meses
Puntos: 129
En una de las últimas FAQ's del foro PHP .. tienes una función de Manoloweb de "sintax" similar a date() original de PHP pero .. con la traducción de los dias de la semana y mes al castellano.

Pruebala .. Aunque .. la teoría del "dia anterior" es la que comenta josemi: componer la fecha con mktime() de un dia anterior y luego darle formato con date() o equivalentes ..

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 12:06.