2010-09-29 17 views
2

Je construis ma première application qui nécessite un calendrier. Je l'ai fonctionné très bien pour le mois en cours. Mon problème est que je ne suis pas sûr comment faire pour que quand un utilisateur clique sur le lien pour aller au mois prochain, il montrera le mois prochain.Calendrier PHP - Problème avec tout autre mois que le mois en cours

Je vais essayer de ne pas poster le code qui est nécessaire pour voici mes variables

//gets todays date 
$date = time(); 

//This puts the day, month, and year in separate variables 
$day = date('d', $date); 
$month = date('m', $date); 
$year = date('y', $date); 
$bigYear = date('Y', $date); 
$first_day = mktime(0, 0, 0, $month, 1, $year);    //we need to generate the first day of the month 
$month_name = date('F', $first_day);      //get the current month's full spelling 
$day_of_week = date('D', $first_day);      //find out what day of the week the first day of the month falls on 
$prevM = getDate(mktime(0, 0, 0, $month-1, 1, $year));  //gets an associative array of the previous month 
$nextM = getDate(mktime(0, 0, 0, $month+1, 1, $year));  //gets an associative array of the next month 
$prevMonth = $prevM['month'];        //gets the actual previous month's name 
$nextMonth = $nextM['month'];        //gets the actual next month's name 
$day_count = 1;            //counts the days up to 7 so we know when to start a new week 
$day_num = 1;            //counter for the total number of days in the month 

Et voici mes liens qui sont censés vous prendre pour les mois suivant et précédent

echo "<th colspan=2 class=\"noBorder\"><a href='{$_SERVER['PHP_SELF']}?currentpage=$prevMonth'>&laquo;</a></th>"; 
echo "<th colspan=3 class=\"noBorder\"><strong>$month_name</strong></th>"; 
echo "<th colspan=2 class=\"noBorder\"><a href='{$_SERVER['PHP_SELF']}?currentpage=$nextMonth'>&raquo;</a></th>"; 

Répondre

1

Essayez ceci:

$date = empty($_GET['currentpage']) ? time() : strtotime($_GET['currentpage']); 

Et:

$prevMonth = "{$prevM['year']}-{$prevM['mon']}"; 
$nextMonth = "{$nextM['year']}-{$nextM['mon']}"; 
+0

Merci pour ça! Je ne faisais que tester et j'ai réalisé que j'étais coincé dans l'année en cours et que j'étais sur le point de demander ça. Très appréciée! – Catfish

1

quelque chose comme:

$date = empty($_GET['currentpage']) ? time() : $_GET['currentpage']; 
+0

Si je fais cela, et puis cliquez sur un des liens, il définit toujours le MONTH_NAME de $ à Décembre. Savez-vous pourquoi c'est? – Catfish

+0

juste besoin de le changer en '$ date = empty ($ _ GET ['currentpage'])? time(): strtotime ($ _ GET ['currentpage']); ' – Catfish

+0

Cela ne fonctionne pas car, après décembre 2010, vous allez revenir à janvier 2010 (pas janvier 2011!). Vous devez également passer l'année. – Mischa