写php常用的时间操作有哪些,PHP常用日期时间操作合集

这篇博客汇总了PHP中处理时间日期的一些常用函数,包括获取上/当月首尾日期,当前周范围,判断星期,计算日期差,以及展示人性化的时间差。还推荐了一个强大的时间操作库,可用于显示如1分钟前等人性化时间,并提供了计算两个日期相差的月、季、年的方法。此外,文中提到维护自己的节假日数据表来判断工作日的重要性。

5268f80b9b1e01f982625ef6fac83ca1.png

需求背景

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');

//得到今天的星座

总结:

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

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值