php时间转换位周月,PHP 日期格式化和日期計算以及獲取當前周、月頭尾日期

PHP 日期格式化和日期計算以及當獲取前周、月頭尾日期

PHP 日期格式化示例代碼:

/**

* 格式化時間

* $type:類型

* $strDate:需要處理的時間字符串

*

* 年份 Y:四位年份 y:兩位年份

* 月份 m: 兩位數字月份 n: 一位數字月份 M:英文月

* 日期 d:兩位數字日期 j:一位數字日期 D:英文日期

* 時:H(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;

}

獲取指定日期對應的星期:

#region 獲取指定日期星期

/**

* 獲取指定日期星期

*

* @param $strDate string 時間

*

* @return string

*/

public static function GetWeek($strDate = ''){

$tim = time();

if(!empty($strDate) && isset($strDate)){

$tim = strtotime($strDate);

}

/* 0:周末 1-6:周一 至 周六 */

$weekIndex = (int)date('w',$tim);

switch($weekIndex){

case 0: return "周末";

case 1: return "周一";

case 2: return "周二";

case 3: return "周三";

case 4: return "周四";

case 5: return "周五";

case 6: return "周六";

default: return "";

}

}

#endregion

獲取兩時間相差的天數小時以及分秒:

#region 獲取兩時間相差的天數小時以及秒 /** * 獲取兩時間相差的天數小時以及秒 * * @param $begin_time string :開始時間 * @param $end_time string :結束時間 * * @return array */ public static function GetTimediff($begin_time,$end_time) { $starttime = null;$endtime=null; $begin_time = strtotime($begin_time); $end_time = strtotime($end_time); if($begin_time < $end_time){ $starttime = $begin_time; $endtime = $end_time; } else{ $starttime = $end_time; $endtime = $begin_time; } $timediff = $endtime-$starttime; $days = intval($timediff/86400); $remain = $timediff%86400; $hours = intval($remain/3600); $remain = $remain%3600; $mins = intval($remain/60); $secs = $remain%60; return [ "day" => $days, "hour" => $hours, "min" => $mins, "sec" => $secs ]; } #endregion

以上代碼僅供參考,疏漏之處還請指出以便改進!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值