用strtotime();
得到那个月起始时间unix的
strtotime("2004-05-01");
再用$t=date("t",strtotime("2004-05-01"));//得到这个月的天数
再得到月未的时间unix的,并将其转化为2004-05-01这种情式
date("Y-m-d",strtotime("2004-05-01")+$t*24*3600-1)

解决方案 »

  1.   

    <?php
    $y = "2003";
    $m = "5";$d = strtotime("$y-$m-1"); // 该月开始
    $e = strtotime("$y-$m-".date("t",$d)); //该月结束//验证
    echo date("Y-m-d",$d);
    echo date("Y-m-d",$e);
    ?>
      

  2.   

    使用strtotime例子:$a=2003-5-1;
    $one=strtotime($a);   //开始的
    $b=2003-6-1;
    $two=strtotime($b)-1;  //结束的(要减少一秒)
      

  3.   

    呵呵,谢谢三位。原来可以用date("t",$d)的方法来得到天数,这就好说了。
    也可以用下一个月第一天减去1秒的方式来得到上个月最后一天,聪明,不过实现起来麻烦,得拆分字符串然后递加才能使月加1。
    张见识了。
      

  4.   

    楼主就是历害,date()函数的用法我建议你可以先查查手册,里面有很多种用法的
      

  5.   

    看过的。 lzkd(浪子快刀) 的方法总觉得有点笨的说。
      

  6.   

    晕...................有两个方法可以考虑.
    1,你加一个文本框,让对方输入从XXX时间开始到XXX时间结束.
    2,你可以strtotime(2003-5-1)+24*3600*31来做为结束时间
    (当然这得是在时间要求不高的情况下)怎么老是想着拆分数据?..........
      

  7.   

    <?
    $inp = "2005-5-5";$y = date("Y",strtotime($inp));
    $m = date("m",strtotime($inp));$d = strtotime("$y-$m-1"); // 该月开始
    $e = strtotime("$y-$m-".date("t",$d)); //该月结束//验证
    echo date("Y-m-d",$d);
    echo date("Y-m-d",$e);
    ?>