for testing and deploying your application
for finding and fixing issues
for empowering human code reviews
<?php
namespace PragmaRX\Tracker\Support;
use Carbon\Carbon;
class Minutes
{
/**
* @var
*/
private $minutes;
private $start;
private $end;
* Minutes constructor.
*
* @param $minutes
public function __construct($minutes = null)
if (!isset($minutes)) {
return;
}
$this->minutes = $minutes;
if ($minutes instanceof self) {
$this->start = $minutes->getStart();
$this->end = $minutes->getEnd();
} else {
$this->calculateStartEnd();
* Calculate start and end dates.
private function calculateStartEnd()
if ($this->minutes == 0) {
$this->setToday();
$this->start = Carbon::now()->subMinutes($this->minutes);
$this->end = Carbon::now();
* @return mixed
public function getEnd()
return $this->end;
public function getMinutes()
return $this->minutes;
public function getStart()
return $this->start;
* @return static
public static function make($minutes)
return new static($minutes);
* @param mixed $end
public function setEnd($end)
$this->end = $end;
* @param mixed $start
public function setStart($start)
$this->start = $start;
* Today.
private function setToday()
$this->start = Carbon::now()->setTime(0, 0, 0);
$this->end = Carbon::now()->setTime(23, 59, 59);