dorian-dates / aritmetic
这是一个允许管理日期的模块
v0.0.2
2022-04-10 00:39 UTC
Requires
- php: >=8.1
Requires (Dev)
- phpunit/phpunit: dev-master
- squizlabs/php_codesniffer: 4.0.x-dev
This package is auto-updated.
Last update: 2024-09-12 05:38:48 UTC
README
这是一个允许轻松管理日期的小型库
安装
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
-
方法应用的顺序可能不同,不会导致错误,因为该类旨在处理溢出和闰年。