需求背景

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. 获取本周的第一天和最后一天

//当前日期$sdefaultDate = date("Y-m-d");//$first =1 表示m每周星期一为开始日期 0表示每周日为开始日期$first = 1;//获取当前周的第几天 周日是 0 周一到周六是 1 - 6$w = date('w', strtotime($sdefaultDate));//获取本周开始日期,如果$w是0,则表示周日,减去 6 天$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. 判断当前日期是星期几

$weekarray=array("日","一","二","三","四","五","六");echo "星期".$weekarray[date("w")];

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

<?php/** * 求两个日期之间相差的天数 * (针对1970年1月1日之后,求之前可以采用泰勒公式) * @param string $day1 * @param string $day2 * @return number */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个月前等人性化的显示,这是可以使用库中的以下函数

$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');//得到今天的星座

总结:

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

更多相关文章

  1. PHP日期时间快速入门(图文详解)
  2. PHP如何计算两个时间段交集的天数?
  3. PHP时间戳和日期格式相互转换
  4. php获取当前时间戳、日期并精确到毫秒(三种方法)
  5. php如何设置日期
  6. php之日期时间操作一箩筐
  7. php日期格式化方法详解

随机推荐

  1. TextView属性大全!技术干货
  2. 关于移动端踩过的坑
  3. Android NDK 使用第一步,编译c文件,声明jni
  4. 谈谈Android的那些事
  5. 从Android界面开发谈起
  6. 如何在Android中利用AIDL添加service
  7. Android(安卓)Material Design
  8. Android(安卓)新手扫盲
  9. 第八章 Android(安卓)开发常见的UI布局
  10. android 小知识