首页 > 编程知识 正文

PHP 处理日期加减月 二月份问题 31日问题,js日期加减月份

时间:2023-05-03 21:04:16 阅读:225501 作者:3013

php有一个日期处理的问题 每年3月31日往前推一个月会变成3月3日或者3月2日 即:date('Y-m-d', strtotime("-1 month",strtotime(date('2017-03-31')))); 本函数是处理这类问题的 /** * 处理日期加一段时间,兼容闰年和二月份 * @author 5843310@qq.com at 2016-11-15 11:00:00 * @param string $date 日期 * @param string $type add-往后推移 sub-往前推移 * @param string $changenum 改变的数值,跟changesuffix一起使用 * @param string $changesuffix 月-month 天-day * @param int $suffix 生成的日期日固定 如果suffix=8 则生成的日期为:'YYYY-MM-08' * @param bool $indate 是否包含当天 如:date=2016-11-05,indate=false,结果为:2016-12-05,indate=true,结果为:2016-12-04 * @return boolean */function yzy_date($date, $changenum = 0, $changesuffix = 'month', $suffix = 0, $type = 'add', $indate = true){if(!$date || $date == ''){return false;}if($changenum == 0){if((int)$suffix == 0){return $date;}else{return date("Y-m-d",strtotime(date("Y-m-".$suffix,strtotime($date))));}}else{if($changesuffix == 'day'){$tempday = date("d",strtotime($date));$tempday += $changenum;}elseif($changesuffix == 'month'){$tempday = date("d",strtotime($date));}if($type == 'add'){$change = '+'.$changenum.' '.$changesuffix;}else{$change = '-'.$changenum.' '.$changesuffix;}$tempdate = date("Y-m-01",strtotime($date));$microtempdate = strtotime($change, strtotime($tempdate));$enddateallday = date('t',$microtempdate);if($tempday > $enddateallday){if($suffix > 0){if($enddateallday > $suffix){$enddatetemp = date("Y-m-d",strtotime(date('Y-m-'.$suffix,$microtempdate)));}else{$enddatetemp = date("Y-m-d",strtotime(date('Y-m-'.$enddateallday,$microtempdate)));}}else{if($changesuffix == 'day'){$enddatetemp = date("Y-m-d",strtotime($change, strtotime($date))-86400);}else{$enddatetemp = date('Y-m-'.$enddateallday,$microtempdate);}}}else{if($suffix > 0){if($tempday > $suffix){$enddatetemp = date('Y-m-'.$suffix,$microtempdate);}else{$enddatetemp = date('Y-m-'.$tempday,$microtempdate);}}else{if($indate){$enddatetemp = date("Y-m-d",strtotime(date('Y-m-'.$tempday,$microtempdate))-86400);}else{$enddatetemp = date('Y-m-'.$tempday,$microtempdate);}}}return $enddatetemp;}}

 

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。