現在の日付までの会計年度を前年の同じ日付範囲と比較するシステムがあります。表示する年と月を調整でき、常に同じ日付範囲を前年と比較します。現在の日がうるう日である場合は昨年の28日と比較し、昨年がうるう年で今日が2月28日である場合は、昨年の29日までと比較するように設定しました。現在の月以外の月を見ると、その月の最終日まで表示されます。それ以外の場合は、現在の日付まで表示されます。
今は問題なく動作しますが、今では私の雇用主は、昨日の日付まで上げたい現在の日付まで上げたくありません。どうすればよいですか。私の主な関心事は、今日が月の1日である場合、または今日が会計年度の初日である場合はどうなるかです。
これが私が今持っているコードです:
function create_YTD_XML()
{
global $month;
global $year;
$last_year = $year - 1;
if($year == date('Y') && $month == date('m'))
{
$this_day = date('d');
}
else
{
$this_day = date('t', mktime(0, 0, 0, $month, 1, $year)); // LAST DAY OF MONTH
}
if(is_leap_year($year) && $this_day == 29)
{
$last_day = 28;
}
else if(is_leap_year($last_year) && $this_day == 28)
{
$last_day = 29;
}
else
{
$last_day = $this_day;
}
if($month >= 2)
{
$this_year_start = $year;
$last_year_start = $last_year;
}
else
{
$this_year_start = $year - 1;
$last_year_start = $last_year - 1;
}
$this_ytd_start = $this_year_start.'-02-01';
$last_ytd_start = $last_year_start.'-02-01';
$this_ytd_end = $year.'-'.str_pad($month, 2, "0", STR_PAD_LEFT).'-'.$this_day;
$last_ytd_end = $last_year.'-'.str_pad($month, 2, "0", STR_PAD_LEFT).'-'.$last_day;
}
最善の解決策は何でしょうか?
ありがとう!