The front end passes two standard time formats, the format is like 2009-05-12 12:12:30, and then returns the representation of different units of this time period as needed. I have not posted the code here for the verification of the time format. out, so when using it, consider adding the
core code:
Class Utils { /** * format MySQL DateTime (YYYY-MM-DD hh:mm:ss) 把mysql中查找出来的数据格式转换成时间秒数 * @param string $datetime */ public function fmDatetime($datetime) { $year = substr($datetime,0,4); $month = substr($datetime,5,2); $day = substr($datetime,8,2); $hour = substr($datetime,11,2); $min = substr($datetime,14,2); $sec = substr($datetime,17,2); return mktime($hour,$min,$sec,$month,$day,0+$year); } /** * * 根据俩个时间获取俩个时间的 包含的 年,月数,天数,小时,分钟,秒 * @param String $start * @param String $end * @return ArrayObject */ private function diffDateTime($DateStart,$DateEnd){ $rs = array(); $sYear = substr($DateStart,0,4); $eYear = substr($DateEnd,0,4); $sMonth = substr($DateStart,5,2); $eMonth = substr($DateEnd,5,2); $sDay = substr($DateStart,8,2); $eDay = substr($DateEnd,8,2); $startTime = $this->fmDatetime($DateStart); $endTime = $this->fmDatetime($DateEnd); $dis = $endTime-$startTime;//得到俩个时间的秒数 $d = ceil($dis/(24*60*60));//得到天数 $rs['day'] = $d;//天数 $rs['hour'] = ceil($dis/(60*60));//小时 $rs['minute'] = ceil($dis/60);//分钟 $rs['second'] = $dis;//秒数 $rs['week'] = ceil($d/7);//周 $tem = ($eYear-$sYear)*12;//月份 $tem1 = $eYear-$sYear;//年 if($eMonth-$sMonth<0){//月份相减为负 $tem +=($eMonth-$sMonth); }else if($eMonth==$sMonth){//月份相同 if($eDay-$sDay>=0){ $tem ++; $tem1++; } }else if($eMonth-$sMonth>0){//月份相减正负 $tem1++; if($eDay-$sDay>=0){//且日期相减为正数 $tem +=($eMonth-$sMonth)+1; }else{ $tem +=($eMonth-$sMonth); } } $rs['month'] = $tem; $rs['year'] = $tem1; return $rs; } }
One more day in a year, the returned value is 2 years, one The return of one day more than a month is 2 months, so by extrapolation... I did this because of project needs. At first, I also looked for such examples on the Internet, but everyone calculated the year as 365 days. The month is calculated based on 30 days. The result calculated in this way is definitely useless. The year may be 366 days, the month may be 31, 29, or 28.
Summary: The above is the entire content of this article. I hope it will be helpful to everyone's study.
Related recommendations:
##phpUse the get_class_methods() function to obtain the classification method example analysis
How PHP converts the text box content into HTML format
The above is the detailed content of How to get the year, month, day, hour, minute and second between a specified time period in PHP. For more information, please follow other related articles on the PHP Chinese website!