[PHP语言] PHP常用日期时间操作合集

[复制链接]
查看1998 | 回复6 | 2020-10-31 15:04:00 | 显示全部楼层 |阅读模式

需求背景

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

总结:

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

以上就是PHP常用日期时间操作合集的详细内容,更多请关注爱上源码网其它相关文章!

  • 微信
  • 分享
  • 相关标签:php 日期时间
  • 本文原创发布爱上源码网,转载请注明出处,感谢您的尊重!
    • 上一篇:PHP生成图形验证码(加强干扰型)
    • 下一篇:Mac电脑设置hosts的方法(图文步骤)

    相关文章

    相关视频

    • php strftime函数获取日期时间php基础
    • MySQL 教程之列类型中的日期时间型
    • php之日期时间操作一箩筐
    • PHP日期时间快速入门(图文详解)
    • PHP常用日期时间操作合集
    • PHP中应用日期和时间1
    • PHP中应用日期和时间2
    • MySQL日期时间型,year、date、time、datetime、timestamp
    本文有爱上源码下载完入驻作者发布,如果对您版权造成侵害,可以联系本站站长管理进行维权删除,本站收到维权24小时内进行处理,谢谢您关注23ym.cn! 本站分享大量程序员技术文章以及对编程开发的初级入门教程,包括图文讲解笔记和高清视频下载~
    回复

    使用道具 举报

    hhhong2017 | 2020-11-4 18:35:56 | 显示全部楼层
    支持悟空源码,越来越好
    回复

    使用道具 举报

    张王赵高痔 | 2022-2-20 19:05:23 | 显示全部楼层
    谢谢楼主发布的资源下载,帮助我不少
    回复

    使用道具 举报

    真无牙泛 | 2022-6-1 06:09:23 | 显示全部楼层
    我是来白嫖悟空源码的积分的!!!!!
    回复

    使用道具 举报

    123457227 | 2022-11-16 09:40:50 | 显示全部楼层
    没积分哈,谁来帮帮我啊
    回复

    使用道具 举报

    这个站很好,资源多,教程全
    回复

    使用道具 举报

    东边是黄海 | 2024-4-8 15:07:37 | 显示全部楼层
    这个站很好,资源多,教程全
    回复

    使用道具 举报

    123457462 | 2024-5-29 02:07:43 | 显示全部楼层
    谢谢楼主分享的资源,爱了~~~
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则