nur-sery/nur_src/b/date/Hour.php

35 lines
817 B
PHP
Raw Normal View History

2023-12-03 22:10:18 +04:00
<?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();
}
}