2016-12-30 71 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

相關問題