Bueno, ayer un cuate me comentó que quería mostrar los videos de la semana, y lo 1ro que se me ocurrió es hacer estas funciones… Todavía no sé si es la mejor forma, pero esta fue mi idea inicial… les comentaré luego si la mejoré, por lo pronto las dejo. A alguien le puede servir la lógica o por qué no, criticarla y mejorarla
#acentos omitidos en comentarios intencionalmente
#Separe las funciones para que sea mas entendible
#La siguiente funcion contiene los dias de la semana, la semana comienza el lunes. Retorna la posicion del dia que recibe
function dias_semana($dia){
$dias=array(
1=>'lunes',
2=>'martes',
3=>'miércoles',
4=>'jueves',
5=>'viernes',
6=>'sábado',
7=>'domingo'
);
$s=array_search($dia,$dias);
return $s;
}
#funcion para pasar a español la fecha
function mifecha($cadena){
$diasEs=Array("lunes","martes","miércoles","jueves","viernes","sábado","domingo");
$mesesEs=Array("enero","febrero","marzo","abril","mayo","junio","julio","agosto","septiembre","octubre","noviembre","diciembre");
$diasEn=Array("Monday","Tuesday","Wednesday","Thursday","Friday", "Saturday","Sunday");
$mesesEn=Array("January", "February", "March", "April", "May", "June","July","August", "September", "October", "November", "December");
$horasEn=Array("th", "st", "nd", "rd");
$horasEs=array("","","");
return str_replace($horasEn,$horasEs,str_replace($mesesEn,$mesesEs,str_replace($diasEn,$diasEs,$cadena)));
}
#Esta funcion listara hara las consultas semanalmente...
function videos_semanales(){
$dias_menos=dias_semana(mifecha(date('l')))-1; //obtenemos cuantos dias restaremos a partir del dia actual para saber que dia es "lunes"
//Hacemos un loop para hacer las consultas
for($i=0;$i<7;$i++){
$dia_semana=date('Y-'.date('j',mktime(0, 0, 0, date("m") , (date("d")-$dias_menos)+$i, date("Y"))).'-m'); //esto genera un formato parecido a este: "2010-22-03"
echo "select * from videos where fecha='".$dia_semana."'"; //Simulo la consulta...
echo "<br/>";
}
}
Y listo, solo basta con llamar a la función de la siguiente manera
videos_semanales();
este ejemplo imprime únicamente algo como esto..
select * from videos where fecha='2010-22-03'
select * from videos where fecha='2010-23-03'
select * from videos where fecha='2010-24-03'
select * from videos where fecha='2010-25-03'
select * from videos where fecha='2010-26-03'
select * from videos where fecha='2010-27-03'
select * from videos where fecha='2010-28-03'
Me parece muy buena forma, porque el formato de fechas sólo he visto en versión inglés en php
Using