date-calculate 日期计算
方便的计算某个日期,或者多个日期
<?php
namespace Tests;
use Lysowc\DateCalculate\DateCalculate;
/**
* 测试日期计算
* @author lysowc
*/
class TestDateCalculate
{
/**
* 测试获取之前的某个日期
* @return void
* @throws Expception
*/
public function testCalculateBeforeDate()
{
$result = [
'yesterDay' => null,
'lastMonth' => null,
'lastYear' => null,
];
$startDate = '2022-08-17';
//两天前
$result['yesterDay'] = DateCalculate::calculateBeforeDate($startDate, 2, 'd');
//3个月前
$result['lastMonth'] = DateCalculate::calculateBeforeDate($startDate, 3, 'm');
//4年前
$result['lastYear'] = DateCalculate::calculateBeforeDate($startDate, 4, 'y');
echo "<pre>";
print_r($result);
// Array
// (
// [yesterDay] => 2022-08-15
// [lastMonth] => 2022-05-17
// [lastYear] => 2018-08-17
// )
}
/**
* 测试计算两个日期之间相隔多少 年/月/日
* @return void
* @throws Expception
*/
public function testCalculateCountBetweenTwoDate()
{
$result = [
'day' => null,
'month' => null,
'year' => null,
];
$startDate = '2022-08-17';
$endDate = '2023-06-07';
//相隔天数
$result['day'] = DateCalculate::calculateCountBetweenTwoDate($startDate, $endDate, 'd');
//相隔月份
$result['month'] = DateCalculate::calculateCountBetweenTwoDate($startDate, $endDate, 'm');
//相隔年份
$result['year'] = DateCalculate::calculateCountBetweenTwoDate($startDate, $endDate, 'y');
echo "<pre>";
print_r($result);
// Array
// (
// [day] => 295
// [month] => 10
// [year] => 1
// )
}
/**
* 测试获取某个月有多少天
* @return void
* @throws Expception
*/
public function testcalculateMonthLastDate()
{
$result = [
'date' => null,
];
$date = '2022-08-17';
$result['date'] = DateCalculate::calculateMonthLastDate($date);
echo "<pre>";
print_r($result);
// Array
// (
// [date] => 31
// )
}
/**
* 测试获取某个日期的第一天 年/月/日
* @return void
* @throws Expception
*/
public function testCalculateFirstDate()
{
$result = [
'month' => null,
'year' => null,
];
$date = '2022-08-17';
//月份第一天
$result['month'] = DateCalculate::calculateFirstDate($date, 'm');
//年份第一天
$result['year'] = DateCalculate::calculateFirstDate($date, 'y');
echo "<pre>";
print_r($result);
// Array
// (
// [month] => 2022-08-01
// [year] => 2022-01-01
// )
}
/**
* 测试获取年/月后一天
* @return void
* @throws Expception
*/
public function testCalculateLastDate()
{
$result = [
'month' => null,
'year' => null,
];
$date = '2022-08-17';
//月份最后一天
$result['month'] = DateCalculate::calculateLastDate($date, 'm');
//年份最后一天
$result['year'] = DateCalculate::calculateLastDate($date, 'y');
echo "<pre>";
print_r($result);
// Array
// (
// [month] => 2022-08-31
// [year] => 2022-12-31
// )
}
/**
* 测试 根据日期计算当前年内所有月和天
* @return void
* @throws Expception
*/
public function testCalculateYmdtDate()
{
$result = [
'month' => [],
];
$startDate = '2022-08-17';
$result['month'] = DateCalculate::calculateYmdtDate($startDate);
echo "<pre>";
print_r($result);
// Array
// (
// [month] => Array
// (
// [1] => Array
// (
// [0] => 00
// [1] => 01
// [2] => 02
// [3] => 03
// [4] => 04
// [5] => 05
// [6] => 06
// [7] => 07
// [8] => 08
// [9] => 09
// [10] => 10
// [11] => 11
// [12] => 12
// [13] => 13
// [14] => 14
// [15] => 15
// [16] => 16
// [17] => 17
// [18] => 18
// [19] => 19
// [20] => 20
// [21] => 21
// [22] => 22
// [23] => 23
// [24] => 24
// [25] => 25
// [26] => 26
// [27] => 27
// [28] => 28
// [29] => 29
// [30] => 30
// [31] => 31
// )
// [2] => Array
// (
// [0] => 00
// [1] => 01
// [2] => 02
// [3] => 03
// [4] => 04
// [5] => 05
// [6] => 06
// [7] => 07
// [8] => 08
// [9] => 09
// [10] => 10
// [11] => 11
// [12] => 12
// [13] => 13
// [14] => 14
// [15] => 15
// [16] => 16
// [17] => 17
// [18] => 18
// [19] => 19
// [20] => 20
// [21] => 21
// [22] => 22
// [23] => 23
// [24] => 24
// [25] => 25
// [26] => 26
// [27] => 27
// [28] => 28
// )
// [3] => Array
// (
// [0] => 00
// [1] => 01
// [2] => 02
// [3] => 03
// [4] => 04
// [5] => 05
// [6] => 06
// [7] => 07
// [8] => 08
// [9] => 09
// [10] => 10
// [11] => 11
// [12] => 12
// [13] => 13
// [14] => 14
// [15] => 15
// [16] => 16
// [17] => 17
// [18] => 18
// [19] => 19
// [20] => 20
// [21] => 21
// [22] => 22
// [23] => 23
// [24] => 24
// [25] => 25
// [26] => 26
// [27] => 27
// [28] => 28
// [29] => 29
// [30] => 30
// [31] => 31
// )
// [4] => Array
// (
// [0] => 00
// [1] => 01
// [2] => 02
// [3] => 03
// [4] => 04
// [5] => 05
// [6] => 06
// [7] => 07
// [8] => 08
// [9] => 09
// [10] => 10
// [11] => 11
// [12] => 12
// [13] => 13
// [14] => 14
// [15] => 15
// [16] => 16
// [17] => 17
// [18] => 18
// [19] => 19
// [20] => 20
// [21] => 21
// [22] => 22
// [23] => 23
// [24] => 24
// [25] => 25
// [26] => 26
// [27] => 27
// [28] => 28
// [29] => 29
// [30] => 30
// )
// [5] => Array
// (
// [0] => 00
// [1] => 01
// [2] => 02
// [3] => 03
// [4] => 04
// [5] => 05
// [6] => 06
// [7] => 07
// [8] => 08
// [9] => 09
// [10] => 10
// [11] => 11
// [12] => 12
// [13] => 13
// [14] => 14
// [15] => 15
// [16] => 16
// [17] => 17
// [18] => 18
// [19] => 19
// [20] => 20
// [21] => 21
// [22] => 22
// [23] => 23
// [24] => 24
// [25] => 25
// [26] => 26
// [27] => 27
// [28] => 28
// [29] => 29
// [30] => 30
// [31] => 31
// )
// [6] => Array
// (
// [0] => 00
// [1] => 01
// [2] => 02
// [3] => 03
// [4] => 04
// [5] => 05
// [6] => 06
// [7] => 07
// [8] => 08
// [9] => 09
// [10] => 10
// [11] => 11
// [12] => 12
// [13] => 13
// [14] => 14
// [15] => 15
// [16] => 16
// [17] => 17
// [18] => 18
// [19] => 19
// [20] => 20
// [21] => 21
// [22] => 22
// [23] => 23
// [24] => 24
// [25] => 25
// [26] => 26
// [27] => 27
// [28] => 28
// [29] => 29
// [30] => 30
// )
// [7] => Array
// (
// [0] => 00
// [1] => 01
// [2] => 02
// [3] => 03
// [4] => 04
// [5] => 05
// [6] => 06
// [7] => 07
// [8] => 08
// [9] => 09
// [10] => 10
// [11] => 11
// [12] => 12
// [13] => 13
// [14] => 14
// [15] => 15
// [16] => 16
// [17] => 17
// [18] => 18
// [19] => 19
// [20] => 20
// [21] => 21
// [22] => 22
// [23] => 23
// [24] => 24
// [25] => 25
// [26] => 26
// [27] => 27
// [28] => 28
// [29] => 29
// [30] => 30
// [31] => 31
// )
// [8] => Array
// (
// [0] => 00
// [1] => 01
// [2] => 02
// [3] => 03
// [4] => 04
// [5] => 05
// [6] => 06
// [7] => 07
// [8] => 08
// [9] => 09
// [10] => 10
// [11] => 11
// [12] => 12
// [13] => 13
// [14] => 14
// [15] => 15
// [16] => 16
// [17] => 17
// [18] => 18
// [19] => 19
// [20] => 20
// [21] => 21
// [22] => 22
// [23] => 23
// [24] => 24
// [25] => 25
// [26] => 26
// [27] => 27
// [28] => 28
// [29] => 29
// [30] => 30
// [31] => 31
// )
// [9] => Array
// (
// [0] => 00
// [1] => 01
// [2] => 02
// [3] => 03
// [4] => 04
// [5] => 05
// [6] => 06
// [7] => 07
// [8] => 08
// [9] => 09
// [10] => 10
// [11] => 11
// [12] => 12
// [13] => 13
// [14] => 14
// [15] => 15
// [16] => 16
// [17] => 17
// [18] => 18
// [19] => 19
// [20] => 20
// [21] => 21
// [22] => 22
// [23] => 23
// [24] => 24
// [25] => 25
// [26] => 26
// [27] => 27
// [28] => 28
// [29] => 29
// [30] => 30
// )
// [10] => Array
// (
// [0] => 00
// [1] => 01
// [2] => 02
// [3] => 03
// [4] => 04
// [5] => 05
// [6] => 06
// [7] => 07
// [8] => 08
// [9] => 09
// [10] => 10
// [11] => 11
// [12] => 12
// [13] => 13
// [14] => 14
// [15] => 15
// [16] => 16
// [17] => 17
// [18] => 18
// [19] => 19
// [20] => 20
// [21] => 21
// [22] => 22
// [23] => 23
// [24] => 24
// [25] => 25
// [26] => 26
// [27] => 27
// [28] => 28
// [29] => 29
// [30] => 30
// [31] => 31
// )
// [11] => Array
// (
// [0] => 00
// [1] => 01
// [2] => 02
// [3] => 03
// [4] => 04
// [5] => 05
// [6] => 06
// [7] => 07
// [8] => 08
// [9] => 09
// [10] => 10
// [11] => 11
// [12] => 12
// [13] => 13
// [14] => 14
// [15] => 15
// [16] => 16
// [17] => 17
// [18] => 18
// [19] => 19
// [20] => 20
// [21] => 21
// [22] => 22
// [23] => 23
// [24] => 24
// [25] => 25
// [26] => 26
// [27] => 27
// [28] => 28
// [29] => 29
// [30] => 30
// )
// [12] => Array
// (
// [0] => 00
// [1] => 01
// [2] => 02
// [3] => 03
// [4] => 04
// [5] => 05
// [6] => 06
// [7] => 07
// [8] => 08
// [9] => 09
// [10] => 10
// [11] => 11
// [12] => 12
// [13] => 13
// [14] => 14
// [15] => 15
// [16] => 16
// [17] => 17
// [18] => 18
// [19] => 19
// [20] => 20
// [21] => 21
// [22] => 22
// [23] => 23
// [24] => 24
// [25] => 25
// [26] => 26
// [27] => 27
// [28] => 28
// [29] => 29
// [30] => 30
// [31] => 31
// )
// )
// )
}
}