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