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