1. Go to this page and download the library: Download phpexperts/workday-planner library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
phpexperts / workday-planner example snippets
use PHPExperts\WorkdayPlanner\WorkdayDetector;
function isWorkday($dateString) {
$isWorkday = WorkdayDetector::isWorkday(new \DateTime($dateString));
$isOrIsnt = $isWorkday ? 'is' : 'is not';
echo "$dateString $isOrIsnt a work day.\n";
}
// Is Friday, 10 August 2018, a workday?
isWorkday('10 August 2018'); // Workday
isWorkday('11 August 2018'); // Weekend
isWorkday('25 December 2018'); // Fixed holiday
isWorkday('22 November 2018'); // Floating holiday
/* Output:
10 August 2018 is a work day.
11 August 2018 is not a work day.
25 December 2018 is not a work day.
22 November 2018 is not a work day.
*/
WorkdayDetector::isWorkday(new \DateTime('2018-11-22')); // false; Thanksgiving Day
WorkdayDetector::isWorkday(new \DateTime('2019-11-28')); // false; Thanksgiving Day
echo (new HolidayDetector()) // 2018-11-22
->getHoliday('Thanksgiving Day')
->format('Y-m-d');
echo (new HolidayDetector()) // 2018-11-28
->changeYear(2019)
->getHoliday('Thanksgiving Day')
->format('Y-m-d');
// The Fourth of July occurs on a Sunday in 2021, so the following Monday is not
// a workday.
use PHPExperts\WorkdayPlanner\WorkdayPlanner;
$planner = new WorkdayPlanner(new \DateTime('2021-07-01'), new \DateTime('2021-07-06'));
echo json_encode(
$planner->getWorkdays(),
JSON_PRETTY_PRINT
);
/* Output:
[
"2021-07-01",
"2021-07-02",
"2021-07-06"
]
*/
$detector = new HolidayDetector();
var_dump([
$detector->isHoliday('2021-07-04'), // The actual holiday.
$detector->isHoliday('2021-07-05'), // The observed holiday
]);
$detector = new HolidayDetector();
$detector->changeYear(2021);
print_r([
'actual' => $detector->getHoliday('Independence Day')->format('l jS \of F Y'),
'observed' => $detector->getHoliday('Independence Day (Observed)')->format('l jS \of F Y'),
]);
/* Output:
array(2) {
[0] => bool(true)
[1] => bool(true)
}
Array
(
[actual] => Sunday 4th of July 2021
[observed] => Monday 5th of July 2021
)
*/
$planner = new WorkdayPlanner(new \DateTime('2021-07-01'), new \DateTime('2021-07-06'));
echo json_encode(
$planner->getWorkdays(),
JSON_PRETTY_PRINT
);
/* Output:
[
"2021-07-01",
"2021-07-02",
"2021-07-06"
]
*/
$planner = new WorkdayPlanner(new \DateTime('2021-07-01'), new \DateTime('2021-07-06'));
/** @var \DateTime $workday */
foreach ($planner as $workday) {
// ...
}
$planner = new WorkdayPlanner(new \DateTime('2021-07-01'), new \DateTime('2021-07-06'));
// Is it a workday?
if (isset($planner['2021-07-01'])) {
echo "Yes, it is.\n";
}
else {
echo "No, it is not.\n";
}
// Since '2021-07-01' is the first day in the range, it is equal to $planner[0].
echo ($planner[0] === $planner['2021-07-01']) ? 'Strictly equal!' : 'Not equal.';
/* Output:
Yes, it is.
Strictly equal!
*/
$planner = new WorkdayPlanner(new \DateTime('2021-07-01'), new \DateTime('2021-07-06'));
unset($planner['2021-07-01']);
// Is it a workday?
if (isset($planner['2021-07-01'])) {
echo "Yes, it is.\n";
}
else {
echo "No, it is not.\n";
}
/* Output:
No, it is not.
*/
Loading please wait ...
Before you can download the PHP files, the dependencies should be resolved. This can take some minutes. Please be patient.