Frage von T1Mde, 23

PHP: Tag & Monat gegeben, Jahr gesucht?

Hallo, ich brauche folgende Funktion. Gegeben sind ein Tag und ein Monat (als zweistellige Zahlen):

function year($day, $month) {
  //...
}

Zurückgegeben werden soll das Jahr (ebenfalls zweistellig), und zwar genau das Jahr, in dem das Datum am nächsten liegt.

Beispiel, um das ein bisschen zu veranschaulichen:

// Heute ist der 31.08.2016
year(01, 01); // 17, da der 1.1.17 näher als der 1.1.16 liegt
year(01, 06); // 16, da der 1.6.16 näher als der 1.6.16 liegt

(2015 muss natürlich auch beachtet werden)

Danke für eure Vorschläge :)

Antwort
von heilwigkenner, 8

Ich habe ein paar Minuten daran herumgespielt, erwarte also nicht zu viel, aber mit der Idee solltest du etwas anfangen können.

<?php


function getMinVal($values) {
return min(array_diff(array_map('floatval', $values), array(0)));
}

function year($day, $month) {
$years = [2016, 2017];
$vals = [];
$i = 0;
foreach($years as $year) {
echo "strtotime: " . strtotime("{$day}-{$month}-{$year}") . "
current time: " . time() . "
";
$vals[$year] = time() - strtotime("{$day}-{$month}-{$year}") < 0 ? false : time() - strtotime("{$day}-{$month}-{$year}");
echo "vals[{$year}]: " . $vals[$year] . "
";
$i++;
}
echo "Min: " . getMinVal($vals) / 24 / 60 / 60 . " | ";
}

echo year(01, 01);
echo "<br><br><br>";
echo year(01, 06);

?>
Kommentar von T1Mde ,

Danke, guck ich mir morgen in Ruhe an

Keine passende Antwort gefunden?

Fragen Sie die Community