dateoperation/operation

DateOperation 类易于使用,并提供简单的加法、减法和小时间隔求和

dev-master 2021-03-20 23:45 UTC

This package is auto-updated.

Last update: 2024-09-21 06:56:25 UTC


README

加法、减法和小时间隔求和操作。

DateOperation 组件是为了简化对小时和分钟间隔的处理而开发的。支持 DateTimeLiteral 类型的输入,提供了更多灵活性和使用便捷性。

文档

安装

使用 composer

/>composer require dateoperation/operation:dev-master

通过 composer 将组件加载到项目中后,您就可以使用其功能,并看到小时和分钟操作是多么简单。

示例代码

<?php

require_once __DIR__."/vendor/autoload.php";

$op = new DateOperation\Operation\DateOperation;
$horas = array(
	[3,14],
	[3,15],
	[1,11]
);
var_dump($op->dateSub($horas,true,LITERAL_TYPE));

结果: string(6) "-1:-12"

DateOperation 类提供了对小时和分钟的三种操作方法。

所有方法 method($arr [], $return true, LITERAL_TYPE); 都有三个参数,其中第二个和第三个是可选的。

  • $arr [] = 执行操作的数组。如果设置了 LITERAL_TYPE 参数,则 $arr [] 将期望以数组形式输入小时和分钟 ["hora1"=>1,"minuto1"=>25],["hora2"=>2,"minuto2"=>13]。如果设置了 DATETIME_TYPE 参数,则 $arr [] 将期望以 DateTime 格式输入小时和分钟 [new DateTime()],[new DateTime()]
  • $return = 定义方法返回值的布尔值,其中 true 返回一个包含小时和分钟的字符串,而 false 返回一个包含两个属性的对象,$op->hour 返回小时,$op->minute 返回分钟。
  • LITERAL_TYPE 或 DATETIME_TYPE = 定义方法将接收的输入类型的常量,其中 LITERAL_TYPE 期望一个数组 array([1,21],[2,12]),而 DATETIME_TYPE 期望一个数组 array(new DateTime('NOW'),new DateTime('NOW'))

求和小时和分钟

文本类型

<?php

require_once __DIR__."/vendor/autoload.php";
$op = new DateOperation\Operation\DateOperation;
$horas = array(
	[2,3],
	[2,3],
	[2,3],
	[2,3]
);
var_dump($op->dateSum($horas,true,LITERAL_TYPE));

DateTime 类型

<?php

require_once __DIR__."/vendor/autoload.php";
$op = new DateOperation\Operation\DateOperation;
$horas = array(
	new DateTime(date('Y-m-d H:i:s', strtotime('2021-03-10 04:39:00'))),
	new DateTime(date('Y-m-d H:i:s', strtotime('2021-03-10 05:45:00'))),
	new DateTime(date('Y-m-d H:i:s', strtotime('2021-03-10 06:00:00'))),
	new DateTime(date('Y-m-d H:i:s', strtotime('2021-03-10 09:21:00')))
);
var_dump($op->dateSum($horas,true,DATETIME_TYPE));

减小时和分钟

文本类型

<?php

require_once __DIR__."/vendor/autoload.php";
$op = new DateOperation\Operation\DateOperation;
$horas = array(
	[2,3],
	[2,3],
	[2,3],
	[2,3]
);
var_dump($op->dateSub($horas,true,LITERAL_TYPE));

DateTime 类型

<?php

require_once __DIR__."/vendor/autoload.php";
$op = new DateOperation\Operation\DateOperation;
$horas = array(
	new DateTime(date('Y-m-d H:i:s', strtotime('2021-03-10 04:39:00'))),
	new DateTime(date('Y-m-d H:i:s', strtotime('2021-03-10 05:45:00'))),
	new DateTime(date('Y-m-d H:i:s', strtotime('2021-03-10 06:00:00'))),
	new DateTime(date('Y-m-d H:i:s', strtotime('2021-03-10 09:21:00')))
);
var_dump($op->dateSub($horas,true,DATETIME_TYPE));

小时和分钟之间的差异

文本类型

<?php

require_once __DIR__."/vendor/autoload.php";
$op = new DateOperation\Operation\DateOperation;
$horas = array(
	[2,3],
	[2,3],
	[2,3],
	[2,3]
);
var_dump($op->dateDiffSum($horas,true,LITERAL_TYPE));

DateTime 类型

<?php

require_once __DIR__."/vendor/autoload.php";
$op = new DateOperation\Operation\DateOperation;
$horas = array(
	new DateTime(date('Y-m-d H:i:s', strtotime('2021-03-10 04:39:00'))),
	new DateTime(date('Y-m-d H:i:s', strtotime('2021-03-10 05:45:00'))),
	new DateTime(date('Y-m-d H:i:s', strtotime('2021-03-10 06:00:00'))),
	new DateTime(date('Y-m-d H:i:s', strtotime('2021-03-10 09:21:00')))
);
var_dump($op->dateDiffSum($horas,true,DATETIME_TYPE));

您服务器的时区必须正确设置。

如果您想手动设置时区,只需在运行所需方法之前添加 date_default_timezone_set(string timezone); 即可。

DateOperation 组件提供了简单处理小时和分钟的方式。

Anderson S Leonardo 开发。