PHP常用日期时间操作合集
来源:安安杰尼
发布时间:2020-05-13 09:54:56
阅读量:1888
需求背景
PHP程序员在日常开发中经常需要计算各种时间,经常有些比较复杂的,特意整理了以下这些常用的,建议收藏。更多详细的操作函数整合了自取https://github.com/xmgb-cj/date
代码
1. 获取上个月第一天及最后一天
1 2 | echo date ( 'Y-m-01' , strtotime ( '-1 month' ));
echo date ( 'Y-m-t' , strtotime ( '-1 month' ));
|
2. 获取当月第一天及最后一天
1 2 3 | $BeginDate = date ( 'Y-m-01' , strtotime ( date ( "Y-m-d" )));
echo $BeginDate ;
echo date ( 'Y-m-d' , strtotime ( "$BeginDate +1 month -1 day" ));
|
3. 获取当天年份、月份、日及天数
1 2 3 4 | echo " 本月共有:" . date ( "t" ). "天" ;
echo " 当前年份" . date ( 'Y' );
echo " 当前月份" . date ( 'm' );
echo " 当前几号" . date ( 'd' );
|
4. 获取本周的第一天和最后一天
1 2 3 4 5 6 7 8 9 10 | $sdefaultDate = date ( "Y-m-d" );
$first = 1;
$w = date ( 'w' , strtotime ( $sdefaultDate ));
$week_start = date ( 'Y-m-d' , strtotime ( "$sdefaultDate -" .( $w ? $w - $first : 6). ' days' ));
$week_end = date ( 'Y-m-d' , strtotime ( "$week_start +6 days" ));
|
5. 判断当前日期是星期几
1 2 | $weekarray = array ( "日" , "一" , "二" , "三" , "四" , "五" , "六" );
echo "星期" . $weekarray [ date ( "w" )];
|
6. 计算两个日期相差的天数
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | <?php
function diffBetweenTwoDays ( $day1 , $day2 )
{
$second1 = strtotime ( $day1 );
$second2 = strtotime ( $day2 );
if ( $second1 < $second2 ) {
$tmp = $second2 ;
$second2 = $second1 ;
$second1 = $tmp ;
}
return ( $second1 - $second2 ) / 86400;
}
$day1 = "2013-07-27" ;
$day2 = "2013-08-04" ;
$diff = diffBetweenTwoDays( $day1 , $day2 );
echo $diff . "\n" ;
|
提升
1. 整合了一份更强大的时间操作库,自行下载https://github.com/xmgb-cj/date,在部分社交场景的项目中,例如用户发布了一个动态内容,需要人性化的显示发布时间,比如1分钟前,1小时前,1个月前等人性化的显示,这是可以使用库中的以下函数
1 2 3 | $time = new Time();
$resp = $time ->timeDiff( '2020-04-30 12:00:00' );
var_dump( $resp );
|
2. 再如计算两个时间的差,得出相差几天、月、季、年,可以使用以下代码得到相差的月份,具体由第二个参数控制。
1 2 | $date = '2020-01-30' ;
$month = floor ( abs ( $time ->dateDiff( $date , 'M' )));
|
3. 判断日期 所属 干支 生肖 星座
1 2 3 | $time = new Time();
echo $time ->magicInfo( 'XZ' );
|