dorian-dates/aritmetic

这是一个允许管理日期的模块

v0.0.2 2022-04-10 00:39 UTC

This package is auto-updated.

Last update: 2024-09-12 05:38:48 UTC


README

这是一个允许轻松管理日期的小型库

Scrutinizer Code Quality Code Coverage

安装

composer require dorian-dates/aritmetic

简介

ArithmeticDates 库的基本使用以 php 的 DateTime 类为基础,第一个参数是要表示的日期,它应该是一个字符串,第二个参数是时区。然而,这两个选项都是可选的;如果没有输入任何选项,则类会生成一个包含当前日期和默认服务器时区的对象。

简单使用

PHP 7.4 版本中的使用

    use Dates\Manejos\ArithmeticDates;
    $date = new ArithmeticDates('now', 'America/Guayaquil');
  • 在这个版本中,如果想要实现特定的时区,第一个参数必须强制为 "now"(当前日期),第二个参数是时区。

PHP ^8.0 版本中的使用

    use Dates\Manejos\ArithmeticDates;
    $date = new ArithmeticDates(zoneHoraria:'America/Guayaquil');
  • 从 PHP 8.0 开始,可以通知类将发送哪些参数,因此不需要输入第一个参数来生成包含当前日期的对象。

ArithmeticDates 类的方法

// Es el metodo que sirve para aumentar años a la fecha instanciada anteriormente
// El valor que se debe de ingresar no debe ser menor a 0  
$date->setYear(1)
// Es el metodo para aumentar meses 
// Este valor no debe ser menor a 0 y mayor a 12 que es un año 
$date->setMoth(3)
//Es el metodo para aumentar dias a la fecha
// Este valor no debe ser menor a 0 y mayor a 31 
$date->setDay(15) 
// Este metodo aumenta las horas , minutos y segundos a la fecha
// Estos valores en el cso de las horas no deben ser mayor a 24 y menores a 0
// En el caso de los minutos y segundos no deben ser mayor a 60 y menor a 0
// En este ejemplo aumentara 5 horas 20 minutos y 15 segundos
$date->setHourMinutesSeconds(5,20,15);
// Este metodo retorna el resultado de haber aplicado los metodos anteriores en como un DateTime
$resulArithmeticDate = $date->getResult();
// El resultado un nueva fecha modificada y con todos los metodos de DateTime
$resulArithmeticDate->getTimestamp(); // Devuelve el fecha en unidad UNIX en milisegundos propio de DateTime

/*Metodos Estaticos de la clase ArithmeticDates*/
//Este metodo estatico sirve para identificar si una fecha se encuentra dentro de un rango de fechas
// Recibe tres parametros el primero es la fecha minima del intervalo
//El segundo es la fecha maxima del intervalo 
//El tercero es la fecha que se va a identificar dentro de ese rango 
// La representacion matematica es [a,b] = {fechaA <= fecha <= fechaB}
// Retorna true si se encuentra en ese rango y false si no 
$arithmeticDatesA = new ArithmeticDates('2022-02-15 00:00:00','America/Guayaquil');
$arithmeticDatesB = new ArithmeticDates('2022-05-01 00:00:00','America/Guayaquil');
$arithmeticDates = new ArithmeticDates('2022-04-09 00:00:00','America/Guayaquil');
ArithmeticDates::hasInterval($arithmeticDatesA,$arithmeticDatesB,$arithmeticDates) // true
  • 请注意,秒数会影响 hasInterval 返回结果的准确性
$arithmeticDatesA = new ArithmeticDates('2022-02-15 12:30:40','America/Guayaquil');
$arithmeticDatesB = new ArithmeticDates('2022-05-01 12:30:45','America/Guayaquil');
$arithmeticDates = new ArithmeticDates('2022-05-01 12:30:50','America/Guayaquil');
ArithmeticDates::hasInterval($arithmeticDatesA,$arithmeticDatesB,$arithmeticDates) // false
  • 返回 false,因为秒数大于 arithmeticDatesB

  • 方法应用的顺序可能不同,不会导致错误,因为该类旨在处理溢出和闰年。