私が働いている会社の会計年度は、木曜日の場合は 1 月 1 日から始まり、それ以外の場合は前年の最後の木曜日から始まります。
これを行う関数を作成しましたが、ループする必要があるのは非効率的です。
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'));
}
}
私はこのようなことを試みてきました:
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'));
}
ただし、これは機能しません。モディファイアを計算するときに何か間違ったことをしていることはわかっていますが、何ですか?
ここで他の同様の質問/回答を見てきましたが、すべてわずかに異なるため、これは真の新しい質問だと思います.