Día de la semana en PHP

31/Ago/2013 PHP , 4 Comentarios
programación php

Montando una página la cual quiera saludar al usuario con la frase "Buenos días, hoy es Sábado" es un buen ejemplo para mostrar como obtener el día de la semana en PHP. Y sobre todo como obtener el día de la semana en PHP y que nos muestre el texto en español.

Utilizando función PHP date

Lo primero que se nos ocurre es tirar de la función date de PHP. Al fin y al cabo trae múltiples formas de obtener información de la fecha.

Además tenemos un modificador, que es "l", el cual nos retorna el día de la semana en PHP. Así que nos ponemos manos a la obra y escribimos lo siguiente:

  1. echo "Buenos días, hoy es "date("l");

Hasta aquí parece que es muy sencillo obtener el día de la semana en PHP (al final también lo será). El problema es que vemos que el programa nos dirá...

Buenos días, hoy es Saturday

Vaya, nos aparece en "spanglish". Pero no desesperemos, ¿podemos localizar la función date jugando con el setlocale? Algo así como:

  1. setlocale(LC_ALL,"es_ES");

Pero tampoco... y es que la función PHP date no es una función que trabaje con localizaciones y por lo tanto devuelve siempre el contenido en inglés.

Utilizando función PHP date y un array

Si queremos seguir trabajando con la función PHP date no debemos desesperar ya que podemos implementar una solución alternativa definiéndonos nos array con los valores de la semana.

  1. $dias = array("domingo","lunes","martes","miércoles","jueves","viernes","sábado");

Y ahora jugar con el modificador "w" de la función PHP date. Y es que este modificador hace que la función PHP date devuelva el día de la semana en un número. Nosotros ya nos hemos apañado para que este número coincida con la posición del array, ya que el 0 es el domingo y el 6 el sábado.

El código a utilizar será:

  1. echo "Buenos días, hoy es ".$dias[date("w")];

Utilizando la función PHP strftime

Como la función PHP date no nos permite localizar el texto, podemos utilizar la función PHP strftime, la cual si que trabaja con el locale.

Así que lo primero es volver a utilizar la función setlocale para todas las funciones "LC_ALL".

  1. setlocale(LC_ALL,"es_ES");

Y ahora utilizarmos strftime mediante el modificador %A que es el que nos indica el día de la semana. Así pondremos el siguiente código:

  1. echo strftime("Buenos d&iacute;as, hoy es %A <br>");

Seguro que alguna de estas dos opciones nos vale para poder poner el día de la semana en PHP.

4 comentarios en “Día de la semana en PHP”

Víctor Cuervo

Henry

Buenas noches. El ejemplo para determinar el día en palabras lo conozco, este es el día de la fecha del sistema, pero yo quiero determinar el día en palabras de una fecha especifica que introduzco o me traigo de la base de datos.

Víctor Cuervo

Javier

Buenas!
Quiero saber si alguien me puede ayudar con un problema.
Necesito en mi pagina mostrar un link solamente los dias sabados en un determinado horario.
Es esto posible con PHP?
Desde ya agradezco toda la ayuda que me puedan brindar.

Víctor Cuervo

max

// Si es sabado
if(date(“l”)==’Saturday’){
// Si es una hora determinada en este ejemplo a las 11:30am
if(date(“H:i:s”)==’11:30:00′){
// muestro el link
echo “link“;
}else{
echo “”;
}
}else{
echo “”;
}

Víctor Cuervo

Víctor Cuervo

Buen enfoque @max. Gracias por ayudar.

¿Algo que nos quieras comentar?

Déjanos tu comentario, no te preocupes que tu email no será publicado

*

*