PHP关于时间获取

1、求某个时间的年,月,日,本月天数  --- 如果求当前时间,将date的第二个参数改为time()即可

$some_time = '2013-2-27 21:35:48'; $str_time = strtotime($some_time);

(1)某月的天数:
方法一:$days = date('t',$str_time);
方法二:$days = cal_days_in_month(CAL_GREGORIAN,3,2013);


(2)年月日
$year = date('Y',$str_time);
$month = date('m',$str_time);
$day = date('d',$str_time);
$hour = date('H',$str_time);
$min = date('i',$str_time);
$second = date('s',$str_time);
月初: $star_month = date('Y-m-01 00:00:00',$str_time);
月末: $end_month = date('Y-m-t 23:59:59',$str_time);   


2、计算临近时间 (月会不准确:比如31号时,上个月或者下个月没有31号,则自动跳转加减30天)
方法一:
+为后面的时间,-为前面的时间
1年后的时间:date('Y-m-d H:i:s',strtotime('+1 year'));
一个月后的时间:date('Y-m-d H:i:s',strtotime('+1 month'));
一天后的时间:date('Y-m-d H:i:s',strtotime('+1 day'));
一星期后的时间:date('Y-m-d H:i:s',strtotime('+1 week'));
一小时后的时间:date('Y-m-d H:i:s',strtotime('+1 hour'));
一分钟后的时间:date('Y-m-d H:i:s',strtotime('+1 minute'));
一秒钟后的时间:date('Y-m-d H:i:s',strtotime('+1 second'));


方法二:
一个月后的时间:date('Y-m-d H:i:s',mktime(date("H"),date("i"),date("s"),date("m")+1,date("d"),date("Y")));
1年零1个月后的时间:date('Y-m-d H:i:s',mktime(date("H"),date("i"),date("s"),date("m")+1,date("d"),date("Y")+1))


3、计算时间差
(1)两个日期相隔的天,时,分,秒
function timediff($begin_time,$end_time){
if($begin_time<$end_time){
$star_time = $begin_time;
else{
star_time = $end_time;
$end_time = $begin_time;
}
$timediff = $end_time - $star_time;
$days = intval($timediff/86400);
$remain = $timediff%86400;
$hours = intval($remain/3600);
$remain = $remain % 3600;
$mins = intval($remain/60);
$secs = $remain % 60 ;
$res = array(
"day"  => $days,
"hour" => $hours,
"min"  => $mins,
"sec"  => $secs
}
return $res;
}


$timediff = timediff(strtotime('2015-12-28'),strtotime('2015-11-25'));


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值