PHP Berechnen Start in das Geschäftsjahr
Die Firma für die ich arbeite, hat ein Geschäftsjahr, das beginnt am 1. Januar, wenn, dass ist ein Donnerstag, ansonsten beginnt am letzten Donnerstag des Vorjahres.
Ich geschrieben habe, eine Funktion, die dies tut, aber es scheint ineffizient zu müssen-Schleife:
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'));
}
}
Ich habe versucht, so etwas wie dieses:
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'));
}
Aber das funktioniert nicht. Ich weiß, ich mache etwas falsch bei der Berechnung meiner modifier, aber was?
Ich habe einen Blick auf andere ähnliche Fragen /Antworten hier und die sind alle unterschiedlich, also ich denke, das ist eine echte neue Frage stellen.
- Einfachste und beste Lösung wäre chumkiu Antwort Balg. Siehe demo.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Entsprechend der doc
So Ihr Fall ist
Nur als Spaß ich werfe diese in den mix für Sie
Versuchen Sie es Sie können dann prüfen, ob es ist die 1.?
natürlich benötigen Sie das richtige format für die überprüfung etc
Ich Liebe diese PHP Macken
this year
gibt unterschiedliche Ergebnisse, wenn es ist die gleiche Sache..Dem php-date-Funktion bietet tatsächlich eine Menge einfache Werkzeuge, dies zu tun!
Ich würde empfehlen, die Bekämpfung Ihres Problems mit den folgenden code:
es ist die Antwort, die für mich arbeiten, ich habe es hier gefunden: Holen Sie sich die am vergangenen Donnerstag vor einem date in PHP
Wenn Sie verwenden möchten Ihre Modifikator Ansatz versuchen :