定制 fmeccanici/dlvr 二次开发

按需修改功能、优化性能、对接业务系统,提供一站式技术支持

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

fmeccanici/dlvr

最新稳定版本:v1.0.6

Composer 安装命令:

composer require fmeccanici/dlvr

包简介

DLVR - PHP delivery date estimations

README 文档

README

This package lets you determine the delivery date based on a work schedule, given start date and amount of work days.

Installation

    composer install fmeccanici/dlvr

Examples

Regular workweek

<?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());

Irregular workdays

<?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());

Holidays

<?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());

统计信息

  • 总下载量: 4
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 0
  • 点击次数: 1
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 0
  • Watchers: 1
  • Forks: 0
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2022-10-10