Bueno resulta que hace poco me toco crear un calendario que mostrara las fechas de ciertos días, o sea en la administración guardar un lapso de fechas (Fecha Inicio - Fecha Fin), y seleccionar los días que se ejecutaría la acción (Ejemplo, lunes, miércoles y viernes), entonces debía listarle al usuario las fechas en ese lapso de fechas que pertenecieran a esos días... Bueno pues me cree una función relativamente sencilla que recorre esas fechas día a día y validara si eran esos días seleccionados y mostrara los que si, en este caso utilicé un almacenamiento en DB así que les pego la función por si les sirve de algo, y recuerden, cualquier inquietud duda y/o sugerencia esta perfectamente recibida...
Aquí la función:
function guardarCalendario($stt, $endt, $dias) { try { $dias = json_decode($dias); foreach ($dias as $dk => $dv) { $dias[$dk] = str_replace( array('lunes', 'martes', 'miercoles', 'jueves', 'viernes', 'sabado', 'domingo'), array('mon', 'tue', 'wed', 'thu', 'fri', 'sat', 'sun'), $dv ); } list($anio_ini, $mes_ini, $dia_ini) = explode("/", $stt); list($anio_fin, $mes_fin, $dia_fin) = explode("/", $endt); $fecha_ini = (int) (strtotime($anio_ini . "-" . $mes_ini . "-" . $dia_ini)); $fecha_fin = (int) (strtotime($anio_fin . "-" . $mes_fin . "-" . $dia_fin)); for ($i = $fecha_ini; $i <= $fecha_fin; $i += 86400) { $dia = strtolower(date("D", $i)); if (in_array($dia, $dias)) { $fecha_dia = date("Y-m-d", $i) . " 00:01:00"; print($fecha_dia); } } } catch (Exception $e) { print "[Calendario] Error!: " . $e->getMessage(); die(); } }
explico por encima jejeje me da pereza especificar todo xD... las variables así:
$stt: Starttime o sea la fecha de inicio en formato Y/m/d
$endt: EndTime o sea la fecha final en mismo formato Y/m/d
$dias: y aquí un array con los días en json, se preguntaran porque en json? RTA: porque lo hacia con ajax
Bueno si tienen alguna duda me escriben e intentaré solucionarles la duda, saludos.
Saludos kid_goth
$endt: EndTime o sea la fecha final en mismo formato Y/m/d
$dias: y aquí un array con los días en json, se preguntaran porque en json? RTA: porque lo hacia con ajax
Después hay un paso opcional este solo si su sistema esta en ingles para cambiar los valores de los días a ingles o pueden hacerlo viceversa. Los asigno a cada variable y ($anio, $mes, $dia) y los convierto en formato time() o sea numérico y los recorro cada 86400 segundos o sea un día y verifico si el date('D') esta entre los días de el array, si es así entonces imprime el día.
Bueno si tienen alguna duda me escriben e intentaré solucionarles la duda, saludos.
Saludos kid_goth
No hay comentarios:
Publicar un comentario