DLVR - PHP配送日期估算

v1.0.6 2022-10-10 19:10 UTC

This package is auto-updated.

Last update: 2024-09-10 23:06:08 UTC


README

此软件包允许您根据工作日程、给定开始日期和工作日数量来确定配送日期。

安装

    composer install fmeccanici/dlvr

示例

常规工作周

<?php

require(__DIR__.'/../vendor/autoload.php');

use Carbon\CarbonImmutable;
use Carbon\CarbonInterface;
use Fmeccanici\Dlvr\Builders\WorkScheduleBuilder;

$workScheduleBuilder = new WorkScheduleBuilder();
$workSchedule = $workScheduleBuilder->addRegularWorkWeek()->build();

$leadTimeInWorkDays = 6;
$now = CarbonImmutable::now()->next(CarbonInterface::MONDAY)->setHour(10)->setMinute(0);
$dueDate = $workSchedule->deliveryDate($now, $leadTimeInWorkDays);

// Delivery date next Tuesday
var_dump($dueDate->toDateTimeString());

不规则工作日

<?php

require(__DIR__.'/../vendor/autoload.php');

use Carbon\CarbonImmutable;
use Carbon\CarbonInterface;
use Fmeccanici\Dlvr\Builders\WorkScheduleBuilder;

$workScheduleBuilder = new WorkScheduleBuilder();
$workSchedule = $workScheduleBuilder
    ->addRegularWorkWeek()
    ->addDeviatingWorkHours(CarbonImmutable::now()->next(CarbonImmutable::MONDAY), 9, 0, 12, 0)
    ->build();

$leadTimeInWorkDays = 6;
$now = CarbonImmutable::now()->next(CarbonInterface::MONDAY)->setHour(10)->setMinute(0);
$dueDate = $workSchedule->deliveryDate($now, $leadTimeInWorkDays);

// Delivery date next Tuesday
var_dump($dueDate->toDateTimeString());

假日

<?php

require(__DIR__.'/../vendor/autoload.php');

use Carbon\CarbonImmutable;
use Carbon\CarbonInterface;
use Fmeccanici\Dlvr\Builders\WorkScheduleBuilder;

$workScheduleBuilder = new WorkScheduleBuilder();
$workSchedule = $workScheduleBuilder->addRegularWorkWeek()->build();
$workSchedule->addHoliday(CarbonImmutable::now()->nextWeekday());

$leadTimeInWorkDays = 6;
$now = CarbonImmutable::now()->next(CarbonInterface::MONDAY)->setHour(10)->setMinute(0);
$dueDate = $workSchedule->deliveryDate($now, $leadTimeInWorkDays);

// Delivery date next Wednesday
var_dump($dueDate->toDateTimeString());