Fecha - Documentación de Referencia__construct($fecha="", $hoySiNull=true): Inicializa la fecha. Si está vacía y $hoySiNull es true, usa hoy.asigna($fecha): Reasigna una nueva fecha y recalcula el estado interno.correcta(): Devuelve bool indicando si la fecha es válida.dia(): Devuelve el día (1-31).mes(): Devuelve el mes (1-12).ano(): Devuelve el año (ej. 2023).hora($segundos=true): Devuelve la hora (ej. 10:45:33 o 10:45).diaSemana(): Devuelve el día de la semana (1-7, donde 1 es lunes).numeroSemana(): Devuelve el número de semana del año.diasDeMes(): Devuelve la cantidad de días que tiene el mes actual.__tostring(): Devuelve la fecha en formato isoCompleto().iso($separador=""): Formato j-n-Y (sin ceros a la izquierda).isoCompleto($separador=""): Formato d-m-Y (con ceros).mysql($separador=""): Formato Y-n-j (sin ceros).mysqlSimple($separador=""): Alias de mysql().mysqlCompleto($separador=""): Formato Y-m-d (con ceros).RFC(): Formato RFC-822 (ej. Wed, 02 Oct 2002 13:00:00 GMT).mongo(): Devuelve un objeto MongoDB\BSON\UTCDateTime.string($diaSemana=false, $anio=true): Devuelve fecha legible (ej. "4 de enero de 2007").mesString($prefijo="", $sufijo=""): Nombre del mes en texto.anoString($prefijo="", $sufijo=""): Año en texto con afijos.diaSemanaString($dia="", $prefijo="", $sufijo=""): Nombre del día de la semana.fechaMesCorto($parametros=array()): Formato corto (ej. "23 May 18").delAl($fecha2, $semana=true, $mostrarEl=false, $modoMin=false): Cadena descriptiva de rango ("Del X al Y").delAlRedux($ops): Versión alternativa y configurable del rango entre dos fechas.enumeraFechas($fechas): Convierte un array de fechas en texto enumerado (ej. "4, 5 y 9 de junio").mayorQueHoy(): Devuelve bool si la fecha es estrictamente futura.diferenciaDias($fecha="", $texto=false): Días de diferencia. Si $texto=true, devuelve string humano.diferenciaHoras($fecha=""): Horas de diferencia (float).diferenciaMinutos($fecha=""): Minutos absolutos de diferencia.quedan($previa="en", $posterior="hace"): Devuelve texto relativo (ej. "hace 2 meses", "en 3 días").fechasSemana($formato="mysql"): Devuelve array con el lunes [0] y domingo [1] de la semana de la fecha.masDias($n): Suma/resta n días a la fecha interna.masHoras($n): Suma/resta n horas.masIntervalo($periodo, $unidad): Añade o resta un intervalo de tiempo genérico.
Tip: Cómo modificar Años, Meses o Minutos Al no existir métodos como
masAnos()omasMeses(), se utiliza este método.
- Sumar 3 años:
$fecha->masIntervalo(3, "year");- Restar 2 meses:
$fecha->masIntervalo(-2, "month");- Unidades soportadas:
second,minute,hour,day,week,month,year.
masIntervalo2($periodo, $unidad): Similar a masIntervalo, usa DateInterval. (Ojo: en el código original tiene un error de variable en el retorno).masDiasHabiles($dias): Suma días saltando sábados y domingos.masDiasEnLaboral($dias): Suma días naturales, pero si cae en fin de semana lo ajusta al viernes o lunes.proximaFechaPeriodica($periodicidad, $unidad=null, $nueva_fecha=false, $redondeo=true): Calcula el siguiente ciclo temporal exacto.Fecha)Fecha::convierteSoapFpAMySql($fecha): Convierte YYYYMMDD HHmiSS a YYYY-MM-DD HH:mi:SS.Fecha::convierteFechaASoapFp($fecha): Inversa de la anterior.Fecha::excel2Ts($excel): Convierte formato de fecha interno de Excel a Timestamp Unix.mesCadena($mes, $corto=false): Devuelve el nombre del mes dado su número (1-12).mesNumero($mes): Devuelve el número del mes dado su nombre en español.
$hoy = new Fecha();
$fecha = new Fecha(current($existeMeGusta)['fecha']);
$diferencia = $hoy->diferenciaDias($fecha->mysqlCompleto());
var_dump($diferencia);
var_dump($hoy->string()); //' 4 de septiembre de 2019'
var_dump($hoy->iso()); //4-9-2019
var_dump($hoy->isoCompleto());//'04-09-2019'
var_dump($hoy->mysql()); //'2019-9-4
var_dump($hoy->mysqlCompleto()); //'2019-09-04 (es la que se usa en BD)
$hoy = new Fecha();
//si queremos guardarla en BD, sería:
$hoy = $fecha->mysqlCompleto();
$parametros["fecha"] = $hoy;
$res= $this->_inserta($parametros);
//o incluso para el caso de hoy, se puede guardar lo siguiente:
$hoy = "now()";
//a veces queremos modificar una parte de la fecha, no sé si hay métodos para eso
//pero a una mala se puede volver a crear un nuevo objeto fecha.
$hoy = new Fecha("2020-".$hoy->mes()."-".$hoy->dia());
//se pueden agregar o restar días
$hoy->masDias(1);
$hoy->masDias(-2);