2016-12-30 64 views
-1

我似乎在这里卡住了我的逻辑。我有一组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

你会如何处理二月,这可能会改变? – Farkie

+0

嗨@Farkie,我实际上正在考虑将它作为默认值。 – danrodrigues

回答

1

你可以使用

date('z'); 

得到一年的当日。 如果该年是闰年,您可以轻松地一个。减去如果该年是闰年,所以

function daynumber() { 
    $day = date('z'); 
    if ($day >= 60 AND date('L') == 1) $day = $day - 1; 
    return $day; 
} 

这将导致二月份的日期数字,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()); 
+0

谢谢!你的回答给了我一些想法。对此,我真的非常感激! – danrodrigues

+0

如果我的答案回答了您的问题,您是否介意将我的答案标记为已接受。您可以在向上和向下按钮下执行此操作。 – rpi

+0

太棒了,我刚刚在我的代码上完成了您的解决方案。非常感谢! – danrodrigues

相关问题