Home > Développement > PHP > Objet

Objet

Dates

Boucle entre deux dates

$begin = new DateTime( "2015-07-03" );
$end   = new DateTime( "2015-07-09" );
 
for($i = $begin->modify('+1 day'); $i < $end; $i->modify('+1 day')) {
  echo $i->format("Y-m-d")."<br>";
}

Jours de la semaine

$i // de 1 à 7
date("d", strtotime(date('o').'W'.date('W').$i));

Jours fériés

public function getJoursFeries($format,$year = null)
{
  if ($year === null) {
    $year = intval(date('Y'));
  }

  $easterDate  = easter_date($year);
  $easterDay   = date('j', $easterDate);
  $easterMonth = date('n', $easterDate);
  $easterYear  = date('Y', $easterDate);

  $holidays = array(
    // Dates fixes
    "Nouvel an" => date($format, mktime(0, 0, 0, 1,  1,  $year)),  // 1er janvier
    "Fête du travail" => date($format, mktime(0, 0, 0, 5,  1,  $year)),  // Fête du travail
    "Victoire 1945" => date($format, mktime(0, 0, 0, 5,  8,  $year)),  // Victoire des alliés
    "Fête nationale" => date($format, mktime(0, 0, 0, 7,  14, $year)),  // Fête nationale
    "Assomption" => date($format, mktime(0, 0, 0, 8,  15, $year)),  // Assomption
    "Toussaint" => date($format, mktime(0, 0, 0, 11, 1,  $year)),  // Toussaint
    "Armistice" => date($format, mktime(0, 0, 0, 11, 11, $year)),  // Armistice
    "Noël" => date($format, mktime(0, 0, 0, 12, 25, $year)),  // Noel

    // Dates variables
    "Lundi de Pâque" => date($format, mktime(0, 0, 0, $easterMonth, $easterDay + 1,  $easterYear)),
    "Ascension" => date($format, mktime(0, 0, 0, $easterMonth, $easterDay + 39, $easterYear)),
    // "Pentecôte" => date($format, mktime(0, 0, 0, $easterMonth, $easterDay + 50, $easterYear)),
  );

  asort($holidays);

  return $holidays;
}

Modify

On peut modifier un objet date avec la méthode modify. Or, si l’objet date est instancier avec un autre objet, cet autre objet risque d’être modifié aussi. On utilise donc le mot clé clone.

$numMinutes = 25;
$oDateA = new DateTime('2012-01-01 12:00:00');
$oDateB = clone $oDateA;
$oDateB->modify("+{$numMinutes} minutes");

Week-ends

// On récupère le jour de la semaine de la date
$weekend = strtolower(date("l", strtotime($date->format("Y-m-d"))));
 
// On check si ce n'est pas un jour de week-end
if($weekend != "saturday" && $dt3 != "sunday") {}

Numbers

Truncate (centième)

floor($n * 100) / 100

Tableaux

Check if key in array

array_key_exists('key', $data)