Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Detectar día (no me funciona)

Estas en el tema de Detectar día (no me funciona) en el foro de PHP en Foros del Web. Estimados: De hace algunos días estoy tratando de generar una función que sea capaz de detectar los días de la semana (o sea, cuando le ...
  #1 (permalink)  
Antiguo 12/06/2013, 08:11
 
Fecha de Ingreso: junio-2013
Mensajes: 10
Antigüedad: 10 años, 10 meses
Puntos: 0
Detectar día (no me funciona)

Estimados:

De hace algunos días estoy tratando de generar una función que sea capaz de detectar los días de la semana (o sea, cuando le entregue por ejemplo hoy 12-06-2013 me devuelva "3" o "Mie" o "Miércoles", cualquier cosa que identifique el día de semana).
Por esta razón, use las siguientes funciones que bajé de internet:

Primera
Código PHP:
<?php
/**
 * Obtener el día de la semana para una fecha concreta.
 */
function diaSemana($ano,$mes,$dia)
{
    
// 0->domingo     | 6->sabado
    
$diadate("w",mktime(000$mes$dia$ano));
        return 
$dia;
}
 
/**
 * Ejemplo de uso
 */
$diaSemana diaSemana("2009""12""10");
echo 
$diaSemana;
 
/**
 * Imprime:
 * 4 | El cuatro corresponde a Jueves
 */
?>
Segunda
Código PHP:
$arrDias = array('Domingo','Lunes','Martes''Miercoles''Jueves''Viernes''Sabado'); 
$fecha mktime(00010  162007); //0,0,0,mes,dia,año 
$dia date("N",$fecha); 
echo 
$arrDias[$dia]; 
El problema es que la función date me entrega el resultado de hoy. Sea cual sea la fecha que ingreso, me entrega el día de semana que corresponde a hoy (con calendario en mano, para corroborar que los días ingresados era variados).

¿Que puedo hacer?
  #2 (permalink)  
Antiguo 12/06/2013, 08:55
 
Fecha de Ingreso: septiembre-2007
Ubicación: PyRoot
Mensajes: 1.515
Antigüedad: 16 años, 7 meses
Puntos: 188
Respuesta: Detectar día (no me funciona)

Si tienes date('w') el 4 corresponde a miércoles
y con date('N') el 4 corresponde a jueves.

Respecto al mktime el formato que espera para mes, dia y año es

mes = date('n') Sin ceros iniciales
día = date('j') Dia sin ceros iniciales
año = date('Y') Año a cuatro dígitos.

Entonces hacer esto:

Código PHP:
Ver original
  1. $arrDias = array('Domingo','Lunes','Martes', 'Miercoles', 'Jueves', 'Viernes', 'Sabado');  
  2. $fecha = mktime(0, 0, 0, 10  , 16, 2007); //0,0,0,mes,dia,año  
  3. $dia = (int)date("w",$fecha);  
  4.  
  5. echo $arrDias[$dia];

Significa que te posicionas en el 16 de octubre del 2007 e imprimirá 'miercoles'


Te debe de funcionar.

Aqui tienes más en la documentación con muchos ejemplos:

http://php.net/manual/es/function.date.php
__________________
Si quieres agradecer el triangulo obscuro de la parte derecha debes presionar +.
  #3 (permalink)  
Antiguo 12/06/2013, 12:23
 
Fecha de Ingreso: junio-2013
Mensajes: 10
Antigüedad: 10 años, 10 meses
Puntos: 0
Respuesta: Detectar día (no me funciona)

Gracias por la respuesta, lo probaré.
  #4 (permalink)  
Antiguo 13/06/2013, 06:01
 
Fecha de Ingreso: junio-2013
Mensajes: 10
Antigüedad: 10 años, 10 meses
Puntos: 0
Respuesta: Detectar día (no me funciona)

Funciona, muchas gracias.

Etiquetas: date, dia, funcion
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 22:03.