我有一个系统,可以将截至当前日期的财政年度与前一年的同一日期范围进行比较。您可以调整要查看的年份和月份,并且它始终将相同的日期范围与前一年进行比较。我设置了它,所以如果今天是闰日,它与去年的 28 日相比,如果去年是闰年,今天是 2 月 28 日,它与去年的 29 日相比。如果您查看当前月份以外的月份,则它会显示到该月的最后一天,否则会显示到当前日期。
好的,现在工作正常,但现在我的雇主不希望它达到当前日期,他们希望它达到昨天的日期。我该怎么做呢,我主要关心的是如果今天是本月的第一天,或者今天是财政年度的第一天怎么办。
这是我现在拥有的代码:
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;
}
最好的解决方案是什么?
谢谢!