Funciones para tratar fechas y horas en php.
Este grupo de funciones php, os ayudarán a tratar los formato de campos fecha y hora para mostrar la información de la manera que más os convenga.
Esperamos os ayuden!
/** * functionsDateTime.php : transformación de campos fecha y hora. */ /** * Devuelve el nombre del día según una fecha. * * @param string $fromData (yyyy-mm-dd) * @param array $arrDayName (0 = Domingo, 1 = Lunes, 2 = Martes, 3 = Miércoles, 4 = Jueves, 5 = Viernes, 6 = Sábado, 7 = Domingo) * @return string */ function weekdayname ($fromData, $arrDayName) { $intTimeStamp = mktime(0, 0, 0, substr($fromData, 5, 2), substr($fromData, 8, 2), substr($fromData, 0, 4)); $weekDay = date('w', $intTimeStamp); return $arrDayName[$weekDay]; } /** * Devuelve el nombre de mes según una fecha. * * @param string $fromData (yyyy-mm-dd) * @param array $arrMonthName (0 = Enero, 1 = Febrero, 2 = Marzo, 3 = Abril, 4 = Mayo, 5 = Junio, 6 = Julio, 7 = Agosto, 8 = Setiembre, 9 = Octubre, 10 = Noviembre, 11 = Diciembre) * @return string */ function monthname ($fromData, $arrMonthName) { $intTimeStamp = mktime(0, 0, 0, substr($fromData, 5, 2), substr($fromData, 8, 2), substr($fromData, 0, 4)); $intMonth = date('m', $intTimeStamp); return $arrMonthName[$intMonth - 1]; } /** * Transforma una fecha según formato. * * @param string $fromData * @param string $strFormat * Los posibles formatos son: 'YYYYMMDD_DDMMYYYY','YYYYMMDD_DDMMYY','DDMMYYYY_YYYYMMDD' * @return string */ function transformdate($fromData, $strFormat ='DDMMYYYY_YYYYMMDD') { $newDate = ''; switch ($strFormat){ case 'YYYYMMDD_DDMMYYYY': $newDate = substr($fromData, 8, 2).substr($fromData, 4, 4).substr($fromData, 0, 4).substr($fromData, 10); break; case 'YYYYMMDD_DDMMYY': $newDate = substr($fromData, 9, 2).substr($fromData, 6, 2).substr($fromData, 3, 2); break; case 'DDMMYYYY_YYYYMMDD': $newDate = substr($fromData, 6, 4).substr($fromData, 2, 4).substr($fromData, 0, 2).substr($fromData, 10); break; } return $newDate; } function transformtime($time){ if ($time == '') return '00:00:00'; if ($time == '00:00:00') return '00:00:00'; $pattern="/^([0-1][0-9]|[2][0-3])[\:]([0-5][0-9])[\:]([0-5][0-9])$/"; if(preg_match($pattern,$time)) return $time; return '00:00:00'; } /** * Devuelve la fecha de final de mes según una fecha informada. * * @param string $fromData * @return string */ function lastmonthday($fromData) { $newDate = ''; $intTimeStamp = mktime(0, 0, 0, substr($fromData, 5, 2), substr($fromData, 8, 2), substr($fromData, 0, 4)); $numDays = intval(date("t",$intTimeStamp)); $newDate = substr($fromData, 0, 4).substr($fromData, 4, 4).$numDays; return $newDate; } /** * Devuelve la fecha de inicial de mes según una fecha informada. * * @param string $fromData * @return string */ function startingmonthday($fromData) { $newDate = ''; $newDate = substr($fromData, 0, 4).substr($fromData, 4, 4).'1'; return $newDate; }