本文实例讲述了php计算给定时间之前的函数用法。分享给大家供大家参考。具体如下: 这里给定一个时间,计算这个时间在多久前,比如:2天前,1年前 <?php function prettyDate($date){ $time = strtotime($date); $now = time(); $ago = $now - $time; if($ago < 60){ $when = round($ago); $s = ($when == 1)?"second":"seconds"; return "$when $s ago"; }elseif($ago 在PHP编程中,有时我们需要计算某个给定时间与当前时间之间的差距,并以易于理解的方式表达出来,例如“2天前”或“1年前”。本文将详细介绍如何使用PHP编写一个名为`prettyDate`的函数,该函数可以计算并返回指定日期距离现在的时间间隔。 我们来看`prettyDate`函数的基本结构: ```php function prettyDate($date){ $time = strtotime($date); $now = time(); $ago = $now - $time; // ... 其他逻辑 ... } ``` 在这个函数中,我们首先通过`strtotime()`函数将给定的日期字符串(如"2012-07-22 12:23:45")转换为Unix时间戳。然后,获取当前时间的Unix时间戳(`$now`),并计算两者之间的差值(`$ago`),以秒为单位。 接下来,我们将根据时间间隔的大小,将其转换为更直观的表述,如秒、分钟、小时、天、月和年: ```php if($ago < 60){ // ... 秒的处理 ... }elseif($ago < 3600){ // ... 分钟的处理 ... }elseif($ago >= 3600 && $ago < 86400){ // ... 小时的处理 ... }elseif($ago >= 86400 && $ago < 2629743.83){ // ... 天的处理 ... }elseif($ago >= 2629743.83 && $ago < 31556926){ // ... 月的处理 ... }else{ // ... 年的处理 ... } ``` 每个条件分支都包含了对`$ago`进行适当的除法运算,以得到适当的时间单位(如秒/分钟/小时/天等),然后进行四舍五入,最后根据单数还是复数来决定单位的正确形式(如"second"或"seconds")。例如,如果时间间隔小于60秒,函数将返回如"1 second ago"这样的结果。 以下是一些`prettyDate`函数的示例用法: ```php echo prettyDate("2012-07-22 12:23:45")."<br />"; echo prettyDate("2010-11-12 22:25:45")."<br />"; echo prettyDate("2012-01-01 01:00:00")."<br />"; echo prettyDate("2001-05-30 00:00:00")."<br />"; ``` 这个函数在处理时间间隔时考虑了闰年的因素,因此在计算月份和年份时采用了近似值。例如,一个月大约是30.4375天,一年大约是365天。 通过`prettyDate`函数,您可以轻松地在PHP应用程序中显示用户友好的时间差异。这在日志记录、消息通知或者任何需要展示时间戳信息的场景中都非常实用。理解并运用这种函数,能够提升您的PHP编程能力,使得时间处理更加灵活和准确。
- 粉丝: 5
- 资源: 953
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助