Hur har du gjort som ger problem ?
För att få nästa månad om man utgår från idag:
$next_month = date("n", strtotime("+1 month"));
För att få nästa månad om man utgår från ett visst datum:
$next_month = date("n", strtotime("+1 month 2005-03-22"));
3 svar · 275 visningar · startad av addeweb
Jag har gjort iordning en kalender med administrationssida. I kalendern har jag också lagt in knappar för föregående och nästa månad. Till min fasa upptäckte jag att kalendern har hoppat över en månad, oktober istället för september under sista timmen före kl 00.00 och sista dagen av augusti månad. Samma sak gällde också november som blev december istället osv. Efter 00-slaget blev kalendern återigen normal igen. Jag har försökt hitta någon lösning men inte lyckats ännu. Kan problemet ha med sommartiden att göra?
Någon som har haft liknande problem kan vara vänligen berätta hur problemet har lösts?
Hur har du gjort som ger problem ?
För att få nästa månad om man utgår från idag:
$next_month = date("n", strtotime("+1 month"));
För att få nästa månad om man utgår från ett visst datum:
$next_month = date("n", strtotime("+1 month 2005-03-22"));
Här är vad jag har gjort:
// GET-variabler
$day = $_GET['day'];
$month = $_GET['month'];
$year = $_GET['year'];
// Om inga värden finns i GET-variablerna, då används dagens datum istället.
if($day == "")
$day = date("j");
if($month == "")
$month = date("n");
if($year == "")
$year = date("Y");
// Månadsvisning med vänster- och högerknappar
echo '<table cellpadding="0" cellspacing="0" border="0"
style="width: 100%; margin-bottom: 10px">
<tr><td style="width: 30%; text-align: right">
<input type="button" value=" << "
onclick="'.goLastMonth( $month, $year ).'" style="width: 50px" title="'
.getMonthName($day, ($month-1), $year).'" />
</td>
<td style="width: 40%; text-align: center">
<b style="font-size: 14px">'
.getMonthName($day, $month, $year).' '.$year.'</b>
</td><td style="width: 30%">
<input type="button" value=" >> "
onclick="'.goNextMonth( $month, $year ).'" style="width: 50px" title="'
.getMonthName($day, ($month+1), $year).'" /></td></tr>
</table>';
// Används till kalendern för månadsvis visning av händelser
function goLastMonth( $month, $year ){
// Om månaden är januari, minska året.
if($month == 1)
{
--$year;
$month = 13;
}
return 'document.location=\''.$_SERVER['PHP_SELF'].'?
p=calendar&month='.($month-1).'&year='.$year.'\'';
}
// Används till kalendern för månadsvis visning av händelser
function goNextMonth( $month, $year ){
// Om månaden är december, öka året
if($month == 12){
++$year;
$month = 0;
}
return 'document.location=\''.$_SERVER['PHP_SELF'].'?
p=calendar&month='.($month+1).'&year='.$year.'\'';
}
// Funktion med tre parametrar för att ta fram månadsnamn.
// Används till kalendern.
function getMonthName( $day, $month, $year ){
$monthNr = date("n", mktime( 0, 0, 0, $month, $day, $year));
$monthNames = array(
1 => 'Januari', 'Februari', 'Mars', 'April', 'Maj', 'Juni',
'Juli', 'Augusti', 'September', 'Oktober', 'November', 'December');
return $monthNames[$monthNr];
}
Problemet med fel månad är numera löst.
// Används till kalendern för månadsvis visning av händelser
function goNextMonth( $month, $year )
{
list($year, $month) = explode("-", date("Y-n", strtotime("+1 month $year-$month-01")));
return "document.location.href='".$_SERVER['PHP_SELF']."?p=calendar&month=$month&year=$year'";
}