Det oktala systemet är ett talsystem som istället för 10 st siffror (0-9) använder sig av 8 st siffror (0-7). I det vanliga, så kallade decimala, talsystemet Så börjar man ju så att säga om efter 9, och skriver 10, 11, osv upp till 19, när man "börjar om" igen, och skriver 20.
Det oktala talsystemet har inte symbolerna 8 och 9, utan börjar om efter 7.
0, 1, 2, 3, 4, 5, 6, 7, 10, 11, 12. 10 motsvarar alltså 8. 11 motsvarar 9 osv.
Det behöver du egentligen inte veta något alls om, men i PHP tolkas ett nummer som börjar med 0 som oktalt, vilket kan leda till allehanda problem om man inte känner till att det ligger till så. Mitt tips är att helt enkelt inte påbörja tal med 0. Du kan istället peta in ett extra mellanslag om du tycker att det är viktigt att entalssiffrorna ligger i samma kolumn.
... när jag tittar närmare på saker inser jag att du använder formateringssträngen m för att få ut månaden, vilket ger en inledande nolla. Eftersom det som skickas tillbaka är en sträng skulle du kunna köra case '08': eller liknande. Eller så...
... använder du inte alls en switch-sats där. Använd en array istället. Notera ändringen till date("n",$dag) som returnerar månaden utan inledande nolla.
function periodFormat($dag){
// Resten av månaderna får du fylla i själv...
$manader=Array("Januari", "Februari", "Mars", "April");
$dag=strtotime($dag);
$strMan=date("n",$dag);
$strY=date("Y",$dag);
// -1 behövs eftersom arrayens index börjar räknas från 0, inte 1
echo $manader[$strMan-1] . " - " . $strY;
}
// Test
periodFormat("2012-02-21");