我似乎坚持我的逻辑。我有一组365个数组,我想只显示与当月的日期相对应的数组。
我是编程新手,我正在接受创建月度圣经阅读计划的挑战。
这是我的阵列:
$meses = array(1 => 'Janeiro', 2 => 'Fevereiro', 3 => 'Março', 4 => 'Abril', 5 => 'Maio', 6 => 'Junho', 7 => 'Julho', 8 => 'Agosto', 9 => 'Setembro', 10 => 'Outubro', 11 => 'Novembro', 12 => 'Dezembro');
$leitura = array(
1 => array(
'Antigo Testamento' => 'Gn 1,2',
'Novo Testamento' => 'Mt 1,2'
),
2 => ...
);
如果我在这里填满所有数组,那就太长了! :)
所以我想知道如何才能实现这一目标。我的问题是,如何告诉PHP“12月”有31天,它应该只显示与12月组成的年份相对应的31个数组?然后它将在1月份只显示与该月相对应的31个数组,依此类推?
非常感谢你!
答案 0 :(得分:1)
您可以使用
date('z');
获取当年的当天。 如果年份是闰年,如果年份是闰年,您可以轻松减去一年,所以
function daynumber() {
$day = date('z');
if ($day >= 60 AND date('L') == 1) $day = $day - 1;
return $day;
}
这将导致2月29日的日期编号与2月28日相同。
这样您就可以使用print_r($leitura[daynumber()]);
如果要打印整月的所有数组,可以使用类似
的内容function arraysmonth() {
$daynumber = $fisrtdayofmonth = date('z',strtotime("first day of this month"));
$lastdayofmonth = date('z',strtotime("last day of this month"));
while ($daynumber < $lastdayofmonth) {
$returnarray[] = $leitura[$daynumber];
$daynumber = $daynumber + 1;
}
return $returnarray;
}
print_r(arraysmonth());