Använder nedstående php-script för att returnera hur många dagar det är i en månad. Det är lite osmidigt, finns det nåt sätt att skriva så att man kan ha flera olika värden på en "case"-rad? Alltså så att alla månader (1, 3, 5...) fångas av samma "case"?
Det skulle ju verkligen bli snyggare då...
function daysInMonth($month,$year){
switch ($month) {
case 1:
return 31;
break;
case 2:
if ( ($year % 4) == 0) {
return 29;
break;
}else{
return 28;
break;
}
case 3:
return 31;
break;
case 5:
return 31;
break;
case 7:
return 31;
break;
case 8:
return 31;
break;
case 10:
return 31;
break;
case 12:
return 31;
break;
default:
return 30;
}
}
oskobMedlem sedan maj 20021 558 inlägg Kan man inte göra det med if?
if ( $month == "1" || $month == "2" || $month == "3" osv ) {
return 31;
}else if ($month == "4" || $month == "5" || $month == "6" osv) {
return 30;
}else if ( $month == "3" ) {
return 28;
}
Men det blev ganska stökigt det med såg jag :/
krisMedlem sedan sep. 200278 inlägg Skulle tro att det här funkar:
function daysInMonth($month,$year){
switch ($month) {
case $month == 1 || $month == 3 || $month == 5 || $month == 7 || $month == 8 || $month == 10 || $month == 12:
return 31;
break;
case 2:
if ( ($year % 4) == 0) {
return 29;
break;
}else{
return 28;
break;
}
default:
return 30;
}
}
Edit: första versionen jag postade verkade inte fungera. Den här verkar det dock.
PeddaMedlem sedan juni 20006 032 inlägg function daysInMonth($month,$year){
switch ($month) {
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
return 31;
break;
case 2:
if ( ($year % 4) == 0) {
return 29;
break;
}else{
return 28;
break;
}
default:
return 30;
}
}
Är ett sätt att förkorta den på.
red/ kris, kan man verkligen använda OR i en case? Kanske går, har aldrig testat. :)
red igen/ Annars så kan man ju med date() få ut antalet dagar en viss månad.
date("t", strtotime('2006-05-01'));
PeeerMedlem sedan mars 20025 907 inlägg Annars så finns funktionen du är ute efter inbyggt i php-funktionen date()
return date('t',strtotime('2005-12-05'));
PeddaMedlem sedan juni 20006 032 inlägg Hehe, du skrev det just som jag redigerade mitt inlägg med date() :)
krisMedlem sedan sep. 200278 inlägg Min första version verkade inte fungera, har ändrat den nu. Men det verkar smartare att använda date() ;)
PeeerMedlem sedan mars 20025 907 inlägg
Pedda skrev:
Hehe, du skrev det just som jag redigerade mitt inlägg med date() :)
Viktigt att poängtera är att mitt inlägg postades före din redigering! ;) :p
date('t',strtotime('2005-12-05'));
Den var ju klockren! Passar jättebra...
Skönt att slippa den där switchen. Tack så mycket!