35 lines
817 B
PHP
35 lines
817 B
PHP
|
<?php
|
||
|
namespace nur\b\date;
|
||
|
|
||
|
/**
|
||
|
* Class Hour: une heure pour un planning de rendez-vous
|
||
|
*/
|
||
|
class Hour extends Time {
|
||
|
const UNIT = self::UNIT_MINUTES;
|
||
|
const WRAP = true;
|
||
|
|
||
|
const FORMAT = "HhMM";
|
||
|
|
||
|
/**
|
||
|
* @return int|null un nombre de minutes dont l'heure doit être multiple. par
|
||
|
* exemple, une valeur 5 permet d'avoir des heures qui vont de 5 en 5 minutes
|
||
|
* (0h00, 0h05, 0h10, etc.)
|
||
|
*/
|
||
|
protected function STEP(): ?int {
|
||
|
return static::STEP;
|
||
|
} const STEP = null;
|
||
|
|
||
|
protected function afterUpdate(): void {
|
||
|
$step = $this->STEP();
|
||
|
if ($step !== null) {
|
||
|
$step *= $this->UNIT();
|
||
|
$value = $this->seconds;
|
||
|
$adjust = $value % $step;
|
||
|
if ($value < 0) $adjust = -$adjust;
|
||
|
$value -= $adjust;
|
||
|
$this->seconds = $value;
|
||
|
}
|
||
|
parent::afterUpdate();
|
||
|
}
|
||
|
}
|