O funcție utilă care vă poate ajuta să determinați vârsta exactă a unei persoane pe baza unei date calendaristice primite sub formate diverse (cum ar fi zi/lună/an, an/zi/lună etc.) este prezentată mai jos.
În cadrul funcției sunt utilizați următorii parametri:
$var– reprezintă data calendaristică transmisă sub formă de șir text (de exemplu"15/08/1990");$type– definește tipul și succesiunea datelor primite în primul parametru. Se folosesc notațiile:dpentru zi,mpentru lună șiypentru an. De exemplu, transmiterea șablonului"d/y/m"indică faptul că data transmisă în$vareste structurată sub forma zi/an/lună.
Codul sursă al funcției în PHP
<?php
function make_age($var, $type) {
$date = explode("/", $type);
$number = explode("/", $var);
$count = count($number);
$month = 0;
$year = 0;
for ($i = 0; $i < $count; $i++) {
if ($date[$i] == "d") {
if ($number[$i] > date("d")) {
$month = $month + 1;
} else {
$month = $month - 1;
}
}
if ($date[$i] == "y") {
$year = date("Y") - $number[$i] + $year;
}
if ($date[$i] == "m") {
if (($number[$i] + $month) < date("m")) {
// Luna este anterioară lunii curente
} else {
$year = $year - 1;
}
}
}
return $year;
}
?>
Exemplu de utilizare
<?php
// Exemplu de apel pentru formatul zi/lună/an
$data_nastere = "25/12/1990";
$format = "d/m/y";
$varsta = make_age($data_nastere, $format);
echo "Vârsta este: " . $varsta . " ani.";
?>
nu merge scriptu