Foros del Web » Programando para Internet » PHP »

Nombre del día

Estas en el tema de Nombre del día en el foro de PHP en Foros del Web. Otra cuestión sobre fechas, en mi BD tengo un campo DATE en el que pongo fechas de eventos que tienen que celebrarse, y yo quiero ...
  #1 (permalink)  
Antiguo 15/01/2004, 16:28
 
Fecha de Ingreso: octubre-2003
Mensajes: 46
Antigüedad: 20 años, 6 meses
Puntos: 0
Nombre del día

Otra cuestión sobre fechas, en mi BD tengo un campo DATE en el que pongo fechas de eventos que tienen que celebrarse, y yo quiero transformar esa fecha por ejemplo: 2004-02-14. A letras: Sábado 14 de febrero del 2003 pero me encuentro que no tengo ni idea de cómo sacar el nombre del día: Lunes, Martes, etc. El mes, el numero de día y el año ya se como se sacan.

Código PHP:
$dbhost "xxx";
$dbuser "xxx"
$dbpass "xxx";
$db "xxx";

$conectar mysql_connect($dbhost,$dbuser,$dbpass); 
mysql_select_db($db,$conectar);

$sql="select right(dia,2) as dias, year(dia) as any, month(dia) as mes from eventos ORDER BY dia ASC";
$res=mysql_query($sql) or die (mysql_error());
$res2=mysql_fetch_array($res);
$mes$res2 ["mes"];
$dias$res2 ["dias"];
$any$res2 ["any"];
$diasem$res2 ["??"];//me falta saber esto

$nommes = array("Gener""Febrer""Març""Abril""Maig""Juny""Juliol""Agost""Setembre""Octubre""Novembre""Desembre");
$nomdia = array("diumenge""dilluns""dimarts""dimecres""dijous""divendres""dissabte");

$fecha $nomdia[$diasem].", ".$dias." de ".$nommes[$mes-1]." del ".$any;

echo 
$fecha;

mysql_close(); 
¿Como podría saber que día será el 14 de febrero, por ejemplo?
Saludos.
  #2 (permalink)  
Antiguo 15/01/2004, 16:35
Avatar de Cain  
Fecha de Ingreso: enero-2002
Ubicación: Catalunya
Mensajes: 6.459
Antigüedad: 22 años, 3 meses
Puntos: 17
Teniendo:

Código PHP:
<?
$mes
$res2 ["mes"];
$dias$res2 ["dias"];
?>
Crea un array con los meses y otro con los días:

Código PHP:
<?
$losmeses 
= array ('''enero''febrero''marzo''abril''mayo''junio''julio''agosto''septiembte''octubre''noviembre''diciembre');
$lasemana = array ('''domingo''lunes''martes''miércoles''jueves''viernes''sabado');
?>
Y recupéralos así:

Código PHP:
<?
$eldia 
$lasemana[$dias];
$elmes $losmeses[$mes];
?>
__________________
M a l d i t o F r i k i
  #3 (permalink)  
Antiguo 15/01/2004, 16:41
Avatar de Cain  
Fecha de Ingreso: enero-2002
Ubicación: Catalunya
Mensajes: 6.459
Antigüedad: 22 años, 3 meses
Puntos: 17
Perdon, me acabo de dar cuenta que $dias es el día del, no de la semana. Para coger el dia de la semana, usa

DATE_FORMAT(dia, %w)

en tu consulta MySQL.
__________________
M a l d i t o F r i k i
  #4 (permalink)  
Antiguo 15/01/2004, 16:54
Avatar de jpinedo
Colaborador
 
Fecha de Ingreso: septiembre-2003
Ubicación: Lima, Perú
Mensajes: 3.120
Antigüedad: 20 años, 7 meses
Puntos: 41
Así tal cual lo pone Cain, no sé si funcionará... pues si el día es 14, no existe la posición $lasemana[14]...

Si ves en el manual de mysql:
http://www.mysql.com/doc/en/Date_and...functions.html

Verás que hay funciones mucho más específicas para obtener el mes, día y año de una fecha.

Por ejemplo hay una función que se llama DAYOFWEEK(campo_date) que te simplifica la vida y te da en el resultado del query directamente el día de la semana en números empezando por el domingo. O sea que: 1=domingo, 2=lunes, 3=martes... etc...

Tu consulta quedaría así:
Código PHP:
$sql "SELECT DAYOFWEEK(dia) as dias, YEAR(dia) as any... etc, etc"
De esta forma ya podrás utilizar el array de Cain.

Saludos
  #5 (permalink)  
Antiguo 15/01/2004, 17:06
Avatar de jpinedo
Colaborador
 
Fecha de Ingreso: septiembre-2003
Ubicación: Lima, Perú
Mensajes: 3.120
Antigüedad: 20 años, 7 meses
Puntos: 41
Bueno... ya Cain rectificó antes que yo... De todas maneras revisa el link al manual que te puse... ahí también está el DATE_FORMAT() que te sugiere Cain. Esa función te devuelve el día de la semana en inglés...

Saludos
  #6 (permalink)  
Antiguo 15/01/2004, 17:17
 
Fecha de Ingreso: octubre-2003
Mensajes: 46
Antigüedad: 20 años, 6 meses
Puntos: 0
Perfecto!, muchísimas gracias.
Adéu. :)
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 21:48.