在编程中有些逻辑需要对时间进行比对,从而处理各种需求。本篇文章就说一说在PHP编程中如果获取昨天,今天,明天,以及本月的开始时间戳以及结束的时间戳。

PHP 的mktime()函数

在PHP中我们可以利用mktime()函数获取一个指定日期的UNIX的时间戳,我们可以利用获取到的时间戳来做各式各样的逻辑处理。

mktime()函数语法

mktime(hour,minute,second,month,day,year,is_dst);

关于mktime()的参数

hour 可选。规定小时。

minute 可选。规定分。

second 可选。规定秒。

month 可选。规定月。

day         可选。规定天。

year         可选。规定年。

is_dst 可选。如果时间在夏令时期间,则设置为 1,否则设置为 0,若未知则设置为 -1(默认)。 注意:该参数在 PHP 5.1.0 中被废弃。取而代之使用的是新的时区处理特性。

利用mktime()函数获取今天的开始时间的UNIX时间戳

//今天开始时间UNIX时间戳
$t = mktime(0,0,0,date('m'),date('d'),date('Y'));
echo '今天开始时间UNIX戳为:'.$t.'<br/>转换成一下格式:'.date('Y-m-d H:i:s',$t);

代码截图

PHP mktime()函数用法,PHP获取指定时间的UNIX时间戳,PHP获取昨天,今天,明天,本月开始时间戳和结束时间戳的方法

测试结果

PHP mktime()函数用法,PHP获取指定时间的UNIX时间戳,PHP获取昨天,今天,明天,本月开始时间戳和结束时间戳的方法

PHP mktime()获取今天结束时间的UNIX时间戳

我们可以利用上面的代码,对mktime()参数中的小时,分,秒进行修改即可(修改到今天的最后时间23点59分59秒)

代码如下

$t = mktime(23,59,59,date('m'),date('d'),date('Y'));
echo '今天结束UNIX戳为:'.$t.'<br/>转换成一下格式:'.date('Y-m-d H:i:s',$t);

代码截图

PHP mktime()函数用法,PHP获取指定时间的UNIX时间戳,PHP获取昨天,今天,明天,本月开始时间戳和结束时间戳的方法

代码运行结果截图

PHP mktime()函数用法,PHP获取指定时间的UNIX时间戳,PHP获取昨天,今天,明天,本月开始时间戳和结束时间戳的方法

PHP mktime()获取昨天开始与结束时间的UNIX时间戳

如果想获取昨天开始时间,或结果时间,我们同样对mktime()传入的参数做一下调整,这里我们主要针对传入的天数参数做调整即可

代码如下

//昨天开始时间
$t = mktime(0,0,0,date('m'),date('d')-1,date('Y'));
echo '昨天开始UNIX戳为:'.$t.'<br/>转换成一下格式:'.date('Y-m-d H:i:s',$t);
//昨天结束时间
$t = mktime(23,59,59,date('m'),date('d')-1,date('Y'));
echo '昨天结束UNIX戳为:'.$t.'<br/>转换成一下格式:'.date('Y-m-d H:i:s',$t);

PHP mktime()获取明天的开始时间与结束时间的UNIX时间戳

这里同样,我们修改传日的天数参数来获取到UNIX时间戳

代码

//明天开始时间UNIX时间戳
$t = mktime(0,0,0,date('m'),date('d')+1,date('Y'));
echo '明天开始UNIX戳为:'.$t.'<br/>转换成一下格式:'.date('Y-m-d H:i:s',$t);
//明天结束时间UNIX时间戳
$t = mktime(23,59,59,date('m'),date('d')+1,date('Y'));
echo '明天结束UNIX戳为:'.$t.'<br/>转换成一下格式:'.date('Y-m-d H:i:s',$t);

PHP mktime()获取上周开始时间与结束时间的UNIX时间戳

代码如下

//获取上周的开始时间UNIX时间戳
$t=mktime(0,0,0,date('m'),date('d')-date('w')+1-7,date('Y'));
//获取上周结束时间UNIX时间戳
$t=mktime(23,59,59,date('m'),date('d')-date('w')+7-7,date('Y'));

注意:上面的代码我们传入天数的参数改为,获取周几的参数,并进行计算去传入,这里要注意

PHP mktime()函数获取本月开始时间与结束时间的UNIX时间戳

代码

//本月开始时间UNIX时间戳
$t=mktime(0,0,0,date('m'),1,date('Y'));
//本月结束时间UNIX时间戳
$t=mktime(23,59,59,date('m'),date('t'),date('Y'));

总结:我们在使用php中mktime()函数的时候,通过对传入参数的灵活运用,可以发挥很大的作用,当然你还得熟悉运用PHP的 date()函数。