Bir sayfada ben dinamik yıl ve her yıl tüm ay listelemek istiyorum bu yüzden her ay için bir arşiv görülebilir. Ben ilk cari yıl göstermek istiyorum ama cari yıl yani sadece geçen ay göstermek istiyorum, ve geçerli ay bitmedi olmayabilir. Sonra, bu yıl (yani 2008) beri geçmişte tüm yıllar ve bütün aylar istiyorum.
Iş yapar ben yarattık PHP kodu aşağıda. Bu ulaşmanın daha etkili bir yolu var mı? PHP 5.2 çalıştırıyorum.
$current_year = date('Y');
$months = array(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12);
// Loop through all the months and create an array up to and including the current month
foreach ($months as $month)
{
if ($month <= date('m'))
{
switch ($month)
{
case 1:
$years[$current_year][] = 'January';
break;
case 2:
$years[$current_year][] = 'February';
break;
case 3:
$years[$current_year][] = 'March';
break;
case 4:
$years[$current_year][] = 'April';
break;
case 5:
$years[$current_year][] = 'May';
break;
case 6:
$years[$current_year][] = 'June';
break;
case 7:
$years[$current_year][] = 'July';
break;
case 8:
$years[$current_year][] = 'August';
break;
case 9:
$years[$current_year][] = 'September';
break;
case 10:
$years[$current_year][] = 'October';
break;
case 11:
$years[$current_year][] = 'November';
break;
case 12:
$years[$current_year][] = 'December';
break;
}
}
}
// Previous years
$years_to_create = $current_year - 2008;
if (!empty($years_to_create))
{
for ($i = 1; $i <= $years_to_create; $i++)
{
$years[$current_year - $i] = array('January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December');
}
}