tengo es escrito en el cual me funciona y le pongo las fechas y me saca perfectame
el limite del mes, pero no entiendo esto que esta en el  if ((($anio % 4 == 0) && !($anio % 100 == 0)) || $anio % 400 == 0)
porque entre 4 y después entre 100 y después debe ser cero      
Código PHP:
Ver original<?php 
//preguntar tres cosas  
//1-como saber que mes de febrero es de 28 o 29 meses 
//2-como saber si es 30 o 31 de cada mes  
 
$numeroDias = 0;
 
$mes = 2;       // Obtiene el número del mes ingresado entre 1 y 12
$anio = 2013;
switch ($mes) 
{
     case 1:
     case 3:
     case 5:
     case 7: 
     case 8:      
     case 10: 
     case 12: 
     $numeroDias = 31; 
     break;
     case 4: 
     case 6: 
     case 9: 
     case 11: 
     $numeroDias = 30; 
     break;
     case 2: 
             if ((($anio % 4 == 0) && !($anio % 100 == 0)) || $anio % 400 == 0) 
             {
              $numeroDias = 29; 
             } 
             else 
             { 
              $numeroDias = 28;
             }
} 
// Desplegar el resultado en pantalla 
echo $numeroDias . " dias";
?>