PHP 日期格式化和日期计算以及当获取前周、月头尾日期
PHP 日期格式化示例代码:
/** * 格式化时间 * $type:类型 * $strDate:需要处理的时间字符串 * * 年份 Y:四位年份 y:两位年份 * 月份 m: 两位数字月份 n: 一位数字月份 M:英文月 * 日期 d:两位数字日期 j:一位数字日期 D:英文日期 * 时:H 、分:i 、秒:s **/ public function GetFormatDate($type = 1,$strDate=''){ $time = time(); if(isset($strDate) && !empty($strDate)){ $time = strtotime($strDate); } switch($type){ case 1: return date("H:i",$time); case 2: return date("m月d日 H:i",$time); case 3: return date("m/d H:i",$time); case 4: return date("Y年m月d日 H:i",$time); case 5: return date("Y/m/d H:i",$time); case 6: return date("Y年m月d日 H:i:s",$time); case 7: return date("Y-m-d H:i:s",$time); case 8: return date("Y/m/d H:i:s",$time); default: return $strDate; } }
日期计算示例代码:
/** * 时间加减处理 * $strDate:需要处理的时间字符串 * $days: 加减天数 **/ public function ChangeDate($strDate,$days){ $time = time(); if(isset($strDate) && !empty($strDate)){ $time = strtotime($strDate); } return date('Y-m-d H:i:s',strtotime("$days day",$time)); }
获取当前周、月头尾日期示例代码:
/** * 获取当前周、月的头尾日期 * * $dateArr['W1']:周一 * $dateArr['W7']:周末 * $dateArr['M1']:月头 * $dateArr['M2']:月尾 **/ public function GetCurrentDateInfo(){ $dayTimes = 24*60*60; $dateArr = [];$temp = ''; //0:周末 1-6:周一 至 周六 $weekIndex = (int)date('W'); switch($weekIndex){ case 0: $dateArr['W1'] = date('Y-m-d 00:00:00',strtotime('-6 day')); $dateArr['W7'] = date('Y-m-d 23:59:59'); break; case 1: $dateArr['W1'] = date('Y-m-d 00:00:00'); $dateArr['W7'] = date('Y-m-d 23:59:59',strtotime('+6 day')); break; case 2: $dateArr['W1'] = date('Y-m-d 00:00:00',strtotime('-1 day')); $dateArr['W7'] = date('Y-m-d 23:59:59',strtotime('+5 day')); break; case 3: $dateArr['W1'] = date('Y-m-d 00:00:00',strtotime('-2 day')); $dateArr['W7'] = date('Y-m-d 23:59:59',strtotime('+4 day')); break; case 4: $dateArr['W1'] = date('Y-m-d 00:00:00',strtotime('-3 day')); $dateArr['W7'] = date('Y-m-d 23:59:59',strtotime('+3 day')); break; case 5: $dateArr['W1'] = date('Y-m-d 00:00:00',strtotime('-4 day')); $dateArr['W7'] = date('Y-m-d 23:59:59',strtotime('+2 day')); break; case 6: $dateArr['W1'] = date('Y-m-d 00:00:00',strtotime('-5 day')); $dateArr['W7'] = date('Y-m-d 23:59:59',strtotime('+1 day')); break; } //1-12:一月 至 十二月 $monthIndex = (int)date('m'); switch($monthIndex){ case 1: $temp = date('Y-02-01 00:00:00'); $dateArr['M1'] = date('Y-m-01 00:00:00'); $dateArr['M2'] = date('Y-m-d 23:59:59',strtotime($temp)-$dayTimes); break; case 2: $temp = date('Y-03-01 00:00:00'); $dateArr['M1'] = date('Y-m-01 00:00:00'); $dateArr['M2'] = date('Y-m-d 23:59:59',strtotime($temp)-$dayTimes); break; case 3: $temp = date('Y-04-01 00:00:00'); $dateArr['M1'] = date('Y-m-01 00:00:00'); $dateArr['M2'] = date('Y-m-d 23:59:59',strtotime($temp)-$dayTimes); break; case 4: $temp = date('Y-05-01 00:00:00'); $dateArr['M1'] = date('Y-m-01 00:00:00'); $dateArr['M2'] = date('Y-m-d 23:59:59',strtotime($temp)-$dayTimes); break; case 5: $temp = date('Y-06-01 00:00:00'); $dateArr['M1'] = date('Y-m-01 00:00:00'); $dateArr['M2'] = date('Y-m-d 23:59:59',strtotime($temp)-$dayTimes); break; case 6: $temp = date('Y-07-01 00:00:00'); $dateArr['M1'] = date('Y-m-01 00:00:00'); $dateArr['M2'] = date('Y-m-d 23:59:59',strtotime($temp)-$dayTimes); break; case 7: $temp = date('Y-08-01 00:00:00'); $dateArr['M1'] = date('Y-m-01 00:00:00'); $dateArr['M2'] = date('Y-m-d 23:59:59',strtotime($temp)-$dayTimes); break; case 8: $temp = date('Y-09-01 00:00:00'); $dateArr['M1'] = date('Y-m-01 00:00:00'); $dateArr['M2'] = date('Y-m-d 23:59:59',strtotime($temp)-$dayTimes); break; case 9: $temp = date('Y-10-01 00:00:00'); $dateArr['M1'] = date('Y-m-01 00:00:00'); $dateArr['M2'] = date('Y-m-d 23:59:59',strtotime($temp)-$dayTimes); break; case 10: $temp = date('Y-11-01 00:00:00'); $dateArr['M1'] = date('Y-m-01 00:00:00'); $dateArr['M2'] = date('Y-m-d 23:59:59',strtotime($temp)-$dayTimes); break; case 11: $temp = date('Y-12-01 00:00:00'); $dateArr['M1'] = date('Y-m-01 00:00:00'); $dateArr['M2'] = date('Y-m-d 23:59:59',strtotime($temp)-$dayTimes); break; case 12: $temp = date((date('Y')+1)."-01-01 00:00:00"); $dateArr['M1'] = date('Y-m-01 00:00:00'); $dateArr['M2'] = date('Y-m-d 23:59:59',strtotime($temp)-$dayTimes); break; } return $dateArr; }
以上代码仅供参考,疏漏之处还请指出以便改进!
时间: 2024-10-23 12:16:27