显示与当月的日期对应的数组

时间:2016-12-30 15:45:34

标签: php arrays date

我似乎坚持我的逻辑。我有一组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个数组,依此类推?

非常感谢你!

1 个答案:

答案 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());