当前位置:首页 > PHP教程 > php日期 > 列表

PHP常用日期时间操作合集

发布:smiling 来源: PHP粉丝网  添加日期:2022-06-10 09:29:06 浏览: 评论:0 

需求背景

PHP程序员在日常开发中经常需要计算各种时间,经常有些比较复杂的,特意整理了以下这些常用的,建议收藏。更多详细的操作函数整合了自取https://github.com/xmgb-cj/date

代码

1. 获取上个月第一天及最后一天

echo date('Y-m-01', strtotime('-1 month'));

echo date('Y-m-t', strtotime('-1 month'));

2. 获取当月第一天及最后一天

$BeginDate=date('Y-m-01', strtotime(date("Y-m-d")));

echo $BeginDate;

echo date('Y-m-d', strtotime("$BeginDate +1 month -1 day"));

3. 获取当天年份、月份、日及天数

echo " 本月共有:".date("t")."天";

echo " 当前年份".date('Y');

echo " 当前月份".date('m');

echo " 当前几号".date('d');

4. 获取本周的第一天和最后一天

  1. //当前日期 
  2.  
  3. $sdefaultDate = date("Y-m-d"); 
  4.  
  5. //$first =1 表示m每周星期一为开始日期 0表示每周日为开始日期 
  6.  
  7. $first = 1; 
  8.  
  9. //获取当前周的第几天 周日是 0 周一到周六是 1 - 6 
  10.  
  11. $w = date('w'strtotime($sdefaultDate)); 
  12.  
  13. //获取本周开始日期,如果$w是0,则表示周日,减去 6 天 
  14.  
  15. $week_start = date('Y-m-d'strtotime("$sdefaultDate -".($w ? $w - $first : 6).' days')); 
  16.  
  17. //本周结束日期 
  18.  
  19. $week_end = date('Y-m-d',strtotime("$week_start +6 days")); 

5. 判断当前日期是星期几

$weekarray=array("日","一","二","三","四","五","六");

echo "星期".$weekarray[date("w")];

6. 计算两个日期相差的天数

  1. <?php 
  2.  
  3. /** 
  4.  
  5.  * 求两个日期之间相差的天数 
  6.  
  7.  * (针对1970年1月1日之后,求之前可以采用泰勒公式) 
  8.  
  9.  * @param string $day1 
  10.  
  11.  * @param string $day2 
  12.  
  13.  * @return number 
  14.  
  15.  */ 
  16.  
  17. function diffBetweenTwoDays ($day1$day2
  18.  
  19.  
  20.   $second1 = strtotime($day1); 
  21.  
  22.   $second2 = strtotime($day2); 
  23.  
  24.       
  25.  
  26.   if ($second1 < $second2) { 
  27.  
  28.     $tmp = $second2
  29.  
  30.     $second2 = $second1
  31.  
  32.     $second1 = $tmp
  33.  
  34.   } 
  35.  
  36.   return ($second1 - $second2) / 86400; 
  37.  
  38.  
  39. $day1 = "2013-07-27"
  40.  
  41. $day2 = "2013-08-04"
  42.  
  43. $diff = diffBetweenTwoDays($day1$day2); 
  44.  
  45. echo $diff."\n"

提升

1. 整合了一份更强大的时间操作库,自行下载https://github.com/xmgb-cj/date,在部分社交场景的项目中,例如用户发布了一个动态内容,需要人性化的显示发布时间,比如1分钟前,1小时前,1个月前等人性化的显示,这是可以使用库中的以下函数

$time = new Time();

$resp = $time->timeDiff('2020-04-30 12:00:00');

var_dump($resp);

2. 再如计算两个时间的差,得出相差几天、月、季、年,可以使用以下代码得到相差的月份,具体由第二个参数控制。

$date = '2020-01-30';

$month = floor(abs($time->dateDiff($date, 'M')));

3. 判断日期 所属 干支 生肖 星座

$time = new Time();

echo $time->magicInfo('XZ');

//得到今天的星座

总结:开发中这种时间日期操作函数还是非常多的,还有一个更常用的就是判断指定日期是否工作日,这个在网上的接口大部分不可用,个人建议还是自己维护一份节假日数据表,国家每年发布法定节假日时维护一次就可以了。

Tags: PHP常用日期时间

分享到: