https://carbon.nesbot.com/docs/
http://zetcode.com/php/carbon/
<?php
$item['time'] = sprintf("%02d:%02d:%02d", floor($time / 3600), floor($time / 60) % 60, $time % 60);
Create sample
cd
mkdir phptest
cd phptest
composer require nesbot/carbon
cat <<EOT > 1.php
<?php
require 'vendor/autoload.php';
use Carbon\Carbon;
printf("Now: %s", Carbon::now());
EOT
s .
s 1.php
php 1.php
<?php
require 'vendor/autoload.php';
use Carbon\Carbon;
# последнее число или add days
$days= 30 ;
$startPeriod = '2018-02-15';
$res = Carbon::createFromFormat("Y-m-d", $startPeriod);
if ( $days > $res->daysInMonth-1 )
$res = $res->endOfMonth()->toDateString();
else
$res = $res->startOfMonth()->addDays($days-1)->toDateString();
$s['lastDate'] = $res;
$s['days'] = $days;
$s['daysInMonth'] = Carbon::createFromFormat("Y-m-d", $startPeriod)->daysInMonth;
$s['days > daysInMonth'] = $days > Carbon::createFromFormat("Y-m-d", $startPeriod)->daysInMonth-1;
print_r($s);