⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 calc.php

📁 一个基于web的开源项目管理工具
💻 PHP
📖 第 1 页 / 共 4 页
字号:
            $month=12;            $day=1;        }        return Date_Calc::dateFormat($day,$month,$year,$format);    } // end func beginOfPrevMonth    /**     * Returns date of the last day of previous month for given date.     *     * @param string year in format CCYY, default current local year     * @param string month in format MM, default current local month     * @param string day in format DD, default current local day     * @param string format for returned date     *     * @access public     *     * @return string date in given format     */    function endOfPrevMonth($day="",$month="",$year="",$format="%Y%m%d")    {        if(empty($year))            $year = Date_Calc::dateNow("%Y");        if(empty($month))            $month = Date_Calc::dateNow("%m");        if(empty($day))            $day = Date_Calc::dateNow("%d");        if($month > 1)        {            $month--;        }        else        {            $year--;            $month=12;        }        $day = Date_Calc::daysInMonth($month,$year);        return Date_Calc::dateFormat($day,$month,$year,$format);    } // end func endOfPrevMonth    /**     * Returns date of the next weekday of given date,     * skipping from Friday to Monday.     *     * @param string year in format CCYY, default current local year     * @param string month in format MM, default current local month     * @param string day in format DD, default current local day     * @param string format for returned date     *     * @access public     *     * @return string date in given format     */    function nextWeekday($day="",$month="",$year="",$format="%Y%m%d")    {        if(empty($year))            $year = Date_Calc::dateNow("%Y");        if(empty($month))            $month = Date_Calc::dateNow("%m");        if(empty($day))            $day = Date_Calc::dateNow("%d");        $days = Date_Calc::dateToDays($day,$month,$year);        if(Date_Calc::dayOfWeek($day,$month,$year) == 5)            $days += 3;        elseif(Date_Calc::dayOfWeek($day,$month,$year) == 6)            $days += 2;        else            $days += 1;        return(Date_Calc::daysToDate($days,$format));    } // end func nextWeekday    /**     * Returns date of the previous weekday,     * skipping from Monday to Friday.     *     * @param string year in format CCYY, default current local year     * @param string month in format MM, default current local month     * @param string day in format DD, default current local day     * @param string format for returned date     *     * @access public     *     * @return string date in given format     */    function prevWeekday($day="",$month="",$year="",$format="%Y%m%d")    {        if(empty($year))            $year = Date_Calc::dateNow("%Y");        if(empty($month))            $month = Date_Calc::dateNow("%m");        if(empty($day))            $day = Date_Calc::dateNow("%d");        $days = Date_Calc::dateToDays($day,$month,$year);        if(Date_Calc::dayOfWeek($day,$month,$year) == 1)            $days -= 3;        elseif(Date_Calc::dayOfWeek($day,$month,$year) == 0)            $days -= 2;        else            $days -= 1;        return(Date_Calc::daysToDate($days,$format));    } // end func prevWeekday    /**     * Returns date of the next specific day of the week     * from the given date.     *     * @param int day of week, 0=Sunday     * @param string year in format CCYY, default current local year     * @param string month in format MM, default current local month     * @param string day in format DD, default current local day     * @param boolean onOrAfter if true and days are same, returns current day     * @param string format for returned date     *     * @access public     *     * @return string date in given format     */    function nextDayOfWeek($dow,$day="",$month="",$year="",$format="%Y%m%d",$onOrAfter=false)    {        if(empty($year))            $year = Date_Calc::dateNow("%Y");        if(empty($month))            $month = Date_Calc::dateNow("%m");        if(empty($day))            $day = Date_Calc::dateNow("%d");        $days = Date_Calc::dateToDays($day,$month,$year);        $curr_weekday = Date_Calc::dayOfWeek($day,$month,$year);        if($curr_weekday == $dow)		{			if(!$onOrAfter)            	$days += 7;		}        elseif($curr_weekday > $dow)            $days += 7 - ( $curr_weekday - $dow );        else            $days += $dow - $curr_weekday;        return(Date_Calc::daysToDate($days,$format));    } // end func nextDayOfWeek    /**     * Returns date of the previous specific day of the week     * from the given date.     *     * @param int day of week, 0=Sunday     * @param string year in format CCYY, default current local year     * @param string month in format MM, default current local month     * @param string day in format DD, default current local day     * @param boolean onOrBefore if true and days are same, returns current day     * @param string format for returned date     *     * @access public     *     * @return string date in given format     */    function prevDayOfWeek($dow,$day="",$month="",$year="",$format="%Y%m%d",$onOrBefore=false)    {        if(empty($year))            $year = Date_Calc::dateNow("%Y");        if(empty($month))            $month = Date_Calc::dateNow("%m");        if(empty($day))            $day = Date_Calc::dateNow("%d");        $days = Date_Calc::dateToDays($day,$month,$year);        $curr_weekday = Date_Calc::dayOfWeek($day,$month,$year);        if($curr_weekday == $dow)		{			if(!$onOrBefore)            	$days -= 7;		}        elseif($curr_weekday < $dow)            $days -= 7 - ( $dow - $curr_weekday );        else            $days -= $curr_weekday - $dow;        return(Date_Calc::daysToDate($days,$format));    } // end func prevDayOfWeek    /**     * Returns date of the next specific day of the week     * on or before the given date.     *     * @param int day of week, 0=Sunday     * @param string year in format CCYY, default current local year     * @param string month in format MM, default current local month     * @param string day in format DD, default current local day     * @param string format for returned date     *     * @access public     *     * @return string date in given format     */    function nextDayOfWeekOnOrAfter($dow,$day="",$month="",$year="",$format="%Y%m%d")    {        return(Date_Calc::nextDayOfWeek($dow,$day="",$month="",$year="",$format="%Y%m%d",true));    } // end func nextDayOfWeekOnOrAfter    /**     * Returns date of the previous specific day of the week     * on or before the given date.     *     * @param int day of week, 0=Sunday     * @param string year in format CCYY, default current local year     * @param string month in format MM, default current local month     * @param string day in format DD, default current local day     * @param string format for returned date     *     * @access public     *     * @return string date in given format     */    function prevDayOfWeekOnOrBefore($dow,$day="",$month="",$year="",$format="%Y%m%d")    {        return(Date_Calc::prevDayOfWeek($dow,$day="",$month="",$year="",$format="%Y%m%d",true));    } // end func prevDayOfWeekOnOrAfter    /**     * Returns date of day after given date.     *     * @param string year in format CCYY, default current local year     * @param string month in format MM, default current local month     * @param string day in format DD, default current local day     * @param string format for returned date     *     * @access public     *     * @return string date in given format     */    function nextDay($day="",$month="",$year="",$format="%Y%m%d")    {        if(empty($year))            $year = Date_Calc::dateNow("%Y");        if(empty($month))            $month = Date_Calc::dateNow("%m");        if(empty($day))            $day = Date_Calc::dateNow("%d");        $days = Date_Calc::dateToDays($day,$month,$year);        return(Date_Calc::daysToDate($days + 1,$format));    } // end func nextDay    /**     * Returns date of day before given date.     *     * @param string year in format CCYY, default current local year     * @param string month in format MM, default current local month     * @param string day in format DD, default current local day     * @param string format for returned date     *     * @access public     *     * @return string date in given format     */    function prevDay($day="",$month="",$year="",$format="%Y%m%d")    {        if(empty($year))            $year = Date_Calc::dateNow("%Y");        if(empty($month))            $month = Date_Calc::dateNow("%m");        if(empty($day))            $day = Date_Calc::dateNow("%d");        $days = Date_Calc::dateToDays($day,$month,$year);        return(Date_Calc::daysToDate($days - 1,$format));    } // end func prevDay    /**     * Sets century for 2 digit year.     * 51-99 is 19, else 20     *     * @param string 2 digit year     *     * @access public     *     * @return string 4 digit year     */    function defaultCentury($year)    {        if(strlen($year) == 1)            $year = "0$year";        if($year > 50)            return( "19$year" );        else            return( "20$year" );    } // end func defaultCentury    /**     * Returns number of days between two given dates.     *     * @param string year in format CCYY     * @param string month in format MM     * @param string day in format DD     * @param string year in format CCYY     * @param string month in format MM     * @param string day in format DD     *     * @access public     *     * @return int absolute number of days between dates,     *      -1 if there is an error.     */    function dateDiff($day1,$month1,$year1,$day2,$month2,$year2)    {        if(!Date_Calc::isValidDate($day1,$month1,$year1))            return -1;        if(!Date_Calc::isValidDate($day2,$month2,$year2))            return -1;        return(abs((Date_Calc::dateToDays($day1,$month1,$year1))                    - (Date_Calc::dateToDays($day2,$month2,$year2))));    } // end func dateDiff    /**    * Compares two dates    *    * @param string $day1   day in format DD    * @param string $month1 month in format MM    * @param string $year1  year in format CCYY    * @param string $day2   day in format DD    * @param string $month2 month in format MM    * @param string $year2  year in format CCYY    *    * @access public    * @return int 0 on equality, 1 if date 1 is greater, -1 if smaller    */    function compareDates($day1,$month1,$year1,$day2,$month2,$year2)    {        $ndays1 = Date_Calc::dateToDays($day1, $month1, $year1);        $ndays2 = Date_Calc::dateToDays($day2, $month2, $year2);        if ($ndays1 == $ndays2) {            return 0;        }        return ($ndays1 > $ndays2) ? 1 : -1;    }    /**     * Find the number of days in the given month.     *     * @param string month in format MM, default current local month     *     * @access public     *     * @return int number of days     */    function daysInMonth($month="",$year="")    {        if(empty($year))            $year = Date_Calc::dateNow("%Y");        if(empty($month))            $month = Date_Calc::dateNow("%m");        if($month == 2)        {            if(Date_Calc::isLeapYear($year))                return 29;            else                return 28;        }        elseif($month == 4 or $month == 6 or $month == 9 or $month == 11)            return 30;        else            return 31;    } // end func daysInMonth

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -