evento_id = $evento_id; $this->periodo_id = $periodo_id; $this->insignia_id = $insignia_id; $this->titulo = $titulo; $this->detalle = $detalle; $this->shortname = $shortname; $this->fecha = Fechas::validaFormatoFecha($fecha); $this->hora_ini = $hora_ini; $this->hora_fin = $hora_fin; $this->inscripciones = $inscripciones; $this->fechasArr = array(); } //Fecha normal function addFecha($fecha){ $fecha = Fechas::validaFormatoFecha($fecha); if(strtotime($fecha)>= strtotime($this->fecha))//solo si la fecha es mayor a la fecha inicial $this->fechasArr[] = array('fecha_orig' => $fecha, 'fecha' => $fecha, 'hora_ini' => $this->hora_ini, 'hora_fin' => $this->hora_fin); } //Fechas modificadas function replaceFecha($fecha_orig, $fecha_new, $hora_ini, $hora_fin){//fecha_orig en formato yyyy-mm-dd hh:mm:ss $fecha_busca = explode(" ", $fecha_orig);//quita horas $fecha_busca[0] = Fechas::validaFormatoFecha($fecha_busca[0]); $fecha_new = Fechas::validaFormatoFecha($fecha_new); for($i=0; $i< count($this->fechasArr); $i++){ if($this->fechasArr[$i]['fecha_orig'] == $fecha_busca[0]){ $this->fechasArr[$i]['fecha'] = $fecha_new; $this->fechasArr[$i]['hora_ini'] = $hora_ini; $this->fechasArr[$i]['hora_fin'] = $hora_fin; break;//solo 1 por fecha } } } //Excepciones function removeFecha($fecha_busca){ $tmp = explode(' ', $fecha_busca);//quita horas $fecha_busca = Fechas::validaFormatoFecha($tmp[0]); for($i=0; $i< count($this->fechasArr); $i++){ if($this->fechasArr[$i]['fecha_orig'] == $fecha_busca){ array_splice($this->fechasArr, $i, 1); break; } } } function hasFecha($fecha){ $fecha = Fechas::validaFormatoFecha($fecha); foreach($this->fechasArr as $fechaArr){ if($fechaArr['fecha'] == $fecha) return true; } return false; } //Obtiene listado de fechas y cada una con la descripicón del evento. //Filtra las fechas generadas por el mes y el año function getEventList($mes, $anho){ $arr = array( 'evento_id' => $this->evento_id, 'titulo' => $this->titulo, 'detalle' => $this->detalle, 'periodo_id' => $this->periodo_id, 'shortname' => $this->shortname, 'dia' => $this->dia, 'inscripciones' => $this->inscripciones, 'insignia_id' => $this->insignia_id, 'periodicidad' => $this->periodicidad, 'fechas' => array() ); $key_values = array_column($this->fechasArr, 'fecha'); array_multisort($key_values, SORT_ASC, $this->fechasArr); foreach($this->fechasArr as $fecha){ //if(intval(date("n", strtotime($fecha["fecha"]))) == intval($mes) && intval(date("Y", strtotime($fecha["fecha"]))) == intval($anho) ){ array_push($arr['fechas'], array('fecha_orig' => $fecha['fecha_orig'],'fecha' => $fecha['fecha'], 'dia' => intval(date("j", strtotime($fecha['fecha']))), 'hora_ini_orig' => substr($fecha['hora_ini'],0,5), 'hora_ini' => substr($fecha['hora_ini'],0,5),'hora_fin' => substr($fecha['hora_fin'],0,5))); //} } return $arr; } }