Firma, nad którą pracuję, ma rok finansowy rozpoczynający się 1 stycznia, jeśli jest to czwartek, w przeciwnym razie rozpoczyna się w ostatni czwartek roku poprzedniego.PHP Oblicz początek roku obrotowego
Pisałem funkcję, która robi to, ale wydaje się nieefektywne konieczności pętli:
function get_start_of_financial_year() {
$date = date('Y').'-01-01';
$correct_day = false;
while(!$correct_day) {
$day_num = date('N', strtotime($date));
if($day_num==4) return $date;
$date = date('Y-m-d', strtotime($date.' -1 day'));
}
}
Próbowałem coś takiego:
function get_start_of_financial_year() {
$date = date('Y').'-01-01';
$day_num = date('N', strtotime($date));
$modifer = 4 - $day_num;
return date('Y-m-d', strtotime($date.' -'.$modifer.' days'));
}
Jednak to nie działa . Wiem, że robię coś nie tak podczas obliczania mojego modyfikatora, ale co?
Mam inne podobne pytania/odpowiedzi na ten temat i wszystkie są nieco inne, więc myślę, że jest to nowe, prawdziwe pytanie.
Najprostszym i najlepszym rozwiązaniem byłoby [odpowiedź chumkiu za poniżej) (http://stackoverflow.com/a/19773014/67332). ** [Zobacz demo] (https://eval.in/60243) **. –