/*
* 功能: 根据输入的年月日 格式化天
* 输入: $tmpYear ->年
$tmpMon ->月
$tmpDay ->
* 返回: $tmpDay ->格式化后的天
*/
function getDayByMon($tmpYear,$tmpMon,$tmpDay)
{
if (is_numeric($tmpDay) && $tmpDay <= 31)
{
switch ($tmpMon)
{
case 2:
if ($tmpDay >= 29)
if ($this->getLeapYear($tmpYear))
$tmpDay = 29;
else
$tmpDay = 28;
case 4:
case 6:
case 9:
case 11:
if ($tmpDay > 30)
$tmpDay = 30;
}
return $tmpDay;
}
else
return false;
}

解决方案 »

  1.   

    getLeapYear()是自定义的函数吧?
      

  2.   

    t 给定月份所应有的天数$m - 月
    $y - 年date("t",mktime(0,0,0,$m,1,$y));
      

  3.   

    mktime( 0,0,0,  (date('m',$time)+1), 0, date('Y',$time)) 即可日为0, 即代表上月最后一天, 手册上有例子.
      

  4.   

    echo date("t",mktime(0,0,0,date('m'),date('d'),date('Y')));
      

  5.   

    //计算二个日期之的天数
    //echo get_date('2006-7-22', '2006-8-22');
    function get_date($d1,$d2)
    {
    $t1 = strtotime($d1);
    $t2 = strtotime($d2);
    $t = $t1-$t2;
    if($t<0)
    $t = $t*(-1);
    $day = $t/3600/24;
    return $day;
    }
    //计算日期的前N天,
    //echo post_date('2006-7-22',10);
    function post_date($date, $days) {
    $t1 = strtotime($date);
    $t2 = $t1 - $days*3600*24;
    return date("Y-m-d", $t2);
    }
    // 指定月的天数
    function numMonth($date){
    if($date == ""){
    $mdate = time();
    }else{
    $mdate = strtotime($date);
    }
    $this->numMonth = date("t",$mdate);
    return $this->numMonth;
    }
      

  6.   

    送佛送上天:打开这个链接就能给分
    http://community.csdn.net/expert/Topicview2.asp?id=5142002
      

  7.   

    date("t",mktime(0,0,0,$m,1,$y));学习
      

  8.   

    date("t",mktime(0,0,0,$m,1,$y));这个是错的,打印出来有31天同意echo date("t",mktime(0,0,0,date("m"),date("d"),date("Y")));打印出来刚好30天
      

  9.   

    你想要的应该是这个:<?php
    $lastDay = date("j",mktime(0, 0, 0, date("n",time())+1, 0, date("Y",time())));
    echo $lastDay;
    ?>