我有一个PHP / HTML应用程序,处理半月工资核算期,由一个期间定义,从1到24,以及年份。这两个参数以及其他参数是从数组中的数据库中捕获的,其中包含键'period'和'year'。
我有一个函数,它使用数组对象参数返回表示工资核算期间开始日期的DateTime对象:
function tlrPeriodStartDate($tlrDate) {
$per = (int) $tlrDate['period'];
$mon = (int) ((1+$per)/2);
$year = (int) $tlrDate['year'];
$semi = (1+$per)%2;
if ($semi==0) // first half of month
$day = 1; // starts on day one
else
$day = 16; // starts on 16th day of month
echo $tlrDate['period'].":".$tlrDate['year'].":$per:$mon:$year:$day<br>\n"; // debugging code
return date_create("$year-$mon-$day");
}
在显示特定页面时,会从多个位置调用此函数。出于某种原因,$ mon变量有时在调用函数时得到值0。结果页面上的示例调试输出如下所示:
14:2013:14:7:2013:16
14:2013:14:7:2013:16
14:2013:14:0:2013:16
这表示对函数的三次调用 - 请注意,句点和年份是相同的,但$ mon对于前两个是正确的,而对于第三个是0。该函数然后返回12/16/2012而不是正确的7/16/2013。
有什么想法吗?