Use PHP to calculate the number of years, months, weeks, and days between two dates:
Copy the code The code is as follows:
function format($a,$b){
//Check the size of two dates. By default, the front is small and the back is large. If the front is large and the back is small, the positions are swapped to ensure Small in front and big in back
if(strtotime($a)>strtotime($b)) list($a,$b)=array($b,$a);
$start = strtotime($a );
$stop = strtotime($b);
$extend = ($stop-$start)/86400;
$result['extends'] = $extend;
if($ extend & lt; 7) {// If it is less than 7 days, return the number of days directly
$ result ['daily'] = $ extend;
} elseif ($ extend & lt; = 31) {// The number of returned weeks is less than 28 days. , since February of the leap year satisfies
if($stop==strtotime($a.'+1 month')){
$result['monthly'] = 1;
}else{
$w = floor($extend/7); '] = $w;
$result['daily'] = $d;
}
}else{
$y= floor($extend/365);
if($ y>=1){ //If it is more than one year
$start = strtotime($a.'+'.$y.'year');
$a = date('Y-m-d',$ start);
//Determine whether it has really been a year, if not, start subtracting
,strtotime($a.'-1 month'));
$extend = ($stop-strtotime($a)) /86400; }
IF (isset ($ m)) {
$ w = Floor ($ extend/7);
$ d = $ extend- $ w*7; }else{
$m = isset($m)?$m:round($extend/30);
$stop>=strtotime($a.'+'.$m.'month')?$m:$m--;
if($stop>=strtotime($a.'+'.$m.'month')){
$d=$w=($stop-strtotime($a.'+'.$m.'month'))/86400;
$w = floor($w/7);
$d = $d-$w*7;
}
}
$result['yearly'] = $y;
$result['monthly'] = $m;
$result['weekly'] = $w;
$result['daily'] = isset($d)?$d:null;
}
return array_filter($result);
}
print_r(format('2012-10-1','2012-12-15'));
?>
运行结果:
Array([extends]=>75[monthly]=>2[weekly]=>2)
php 查询某天所在的周数及对应周的起始日期
复制代码 代码如下:
/**
* @file
* @version 1.1
* @author QQ83989686
* @date 2012-8-7 Last modified
* @brief
*/
//获取某个日期的 周数、周对应的开始结束时间
private function getWeekStartEndDay($day)
{
$g = strftime("%u",strtotime($day));
return array('week_num'=>strftime("%V",strtotime($day)),'week_start_day'=>strftime('%Y-%m-%d',strtotime($day)-($g-1)*86400),'week_start_day_cn'=>strftime('%Y年%m月%d日',strtotime($day)-($g-1)*86400),'week_end_day'=>strftime('%Y-%m-%d',strtotime($day) + (7-$g)*86400),'week_end_day_cn'=>strftime('%Y年%m月%d日',strtotime($day) + (7-$g)*86400));
}
http://www.bkjia.com/PHPjc/327561.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/327561.htmlTechArticle使用PHP实现计算两个日期间隔的年、月、周、日数: 复制代码 代码如下: ?php function format($a,$b){ //检查两个日期大小,默认前小后大,如果前...
Statement:The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn