Helpers – DateTime – Fechas y horas
LibrerÃa para la manipulación de fechas y horas en formato yyyy-mm-dd hh:ii:ss
/** * HelperDateTime.php * @author Code Develium */ namespace Helpers; /** * Class HelperDateTime */ abstract class HelpDateTime { /** * Devuelve sólo la hora de una fecha y hora * Formato fecha y hora: yyyy-mm-dd hh:mm:ss * Formato hora: hh:mm:ss * * @param string $datetime * * @return string */ public static function getOnlyTime($datetime) { list(, $time) = explode(' ', $datetime); return $time; } /** * Devuelve sólo la fecha de una fecha y hora * Formato fecha y hora: yyyy-mm-dd hh:mm:ss * Formato fecha: yyyy-mm-dd * * @param string $datetime * @return string * */ public static function getOnlyDate($datetime) { list($fecha,) = explode(' ',$datetime); return $fecha; } /** * Devuelve el dÃa y hora actual GMT en formato dd/mm/yyyy * hh:mm:ss * Formato de fecha: yyyy-mm-dd hh.mm:ss * @return string */ public static function getNowGMT() { return gmdate('Y-m-d H:i:s'); } /** * Devuelve el dÃa y hora actual en formato dd/mm/yyyy hh:mm:ss * Formato de fecha: yyyy-mm-dd hh.mm:ss * @return string */ public static function getNow() { return date('Y-m-d H:i:s'); } /** * Indica que fecha/hora es menor * > 1 => dt1 > dt2 * < 1 => dt1 < dt2 * = 0 => dt1 = dt2 * * @param $strFH1 * @param $strFH2 * * @return int */ public static function getDiff($strFH1, $strFH2) { list($d1, $h1) = explode(' ', $strFH1); list($d2, $h2) = explode(' ', $strFH2); list($nDia1, $nMes1, $nAny1) = explode('-', $d1); list($nDia2, $nMes2, $nAny2) = explode('-', $d2); list($nh1, $nm1, $na1) = explode(':', $h1); list($nh2, $nm2, $na2) = explode(':', $h2); return mktime($nh1, $nm1, $na1, $nMes1, $nDia1, $nAny1) - mktime($nh2, $nm2, $na2, $nMes2, $nDia2, $nAny2); } /** * Muestra la fecha y hora en función de un formato. * * @param string $datetime * @param string $formato * @param bool $mostrarSegundos * * @return string */ public static function displayWithFormat( $datetime, $formato = 'dd/mm/yyyy', $mostrarSegundos = true) { if (HelpValidate::isEmpty($datetime)) { return ''; } if (strlen($datetime) == 16) { $datetime .= ':00'; } $offset = 0; list($dt, $tm) = explode(' ', $datetime); $dt = ''; //HelperDate::display($dt, $formato); if ($mostrarSegundos) { return "$dt $tm"; } else { list($h, $m,) = explode(':', $tm); return "$dt $h:$m"; } } /** * Sumar minutos a una fecha. * Formato de fecha: yyyy-mm-ss * * @param $date * @param $minutos * * @return false|string */ public static function sumarMinutos($date, $minutos) { return date('Y-m-d H:i:s', strtotime( $date.' + '.$minutos.' minute')); } /** * Suma una cantidad de dÃas, meses, años, horas, minutos y/o * segundos a una fecha y hora * Formato de fecha y hora: yyyy-mm-dd hh:mm:ss * * @param $fecha * @param int $dd * @param int $mm * @param int $yy * @param int $hh * @param int $mn * @param int $ss * * @return string */ public static function sumarFechaHora( $fecha, $dd = 0, $mm = 0, $yy = 0, $hh = 0, $mn = 0, $ss = 0) { list($any, $mes, $dia) = explode('-', $fecha); $date = $any.'-'.$mes.'-'.$dia; $date_r = getdate(strtotime($date)); return date('Y-m-d', mktime(($date_r[ "hours" ] + $hh), ($date_r[ "minutes" ] + $mn), ($date_r[ "seconds" ] + $ss), ($date_r[ "mon" ] + $mm), ($date_r[ "mday" ] + $dd), ($date_r[ "year" ] + $yy))); } /** * Establece la configuración horaria */ public static function setLocateTimeZone() { date_default_timezone_set('Europe/Madrid'); setlocale(LC_ALL, 'es-ES'); setlocale(LC_TIME, null); } }