php 小时时间戳,PHP时间戳函数(几分钟、几小时前、几天前等)

时间戳是我们在时间日期对比时常用到一个小功能,下面我先来给各位介绍strtotime时间戳转换的一些方法与利用它来做一个日期格式化的几分钟、几小时前、几天前的一个实例。

1.PHP时间戳函数将日期转化为unix时间戳

世界末日时间戳 PHP

代码如下

复制代码

echo "世界末日时间戳为:".strtotime("2012-12-21")

2.将时间戳转化为系统时间

代码如下

复制代码

date('Y-m-d H:i:s',"1228348800");

3.PHP时间戳函数获取英文文本日期时间 示例如下:

便于比较,使用date将当时间戳与指定时间戳转换成系统时间

(1)打印明天此时的时间戳strtotime(”+1 day”)

代码如下

复制代码

//当前时间

echo date("Y-m-d H:i:s",time());

//明天此时时间

echo date("Y-m-d H:i:s",strtotime("+1 day"));

(2)打印昨天此时的时间戳strtotime(”-1 day”)

代码如下

复制代码

//当前时间

echo date("Y-m-d H:i:s",time()) ;

//指定时间

echo date("Y-m-d H:i:s",strtotime("-1 day"));

(3)打印下个星期此时的时间戳strtotime("+1 week")

代码如下

复制代码

//当前时间

echo date("Y-m-d H:i:s",time());

//下星期时间

echo date("Y-m-d H:i:s",strtotime("+1 week"));

(4)打印上个星期此时的时间戳strtotime("-1 week")

代码如下

复制代码

//当前时间

echo date("Y-m-d H:i:s",time());

//上个星期此时时间

echo date("Y-m-d H:i:s",strtotime("-1 week"));

(5)打印指定下星期几的时间戳strtotime("next Thursday")

代码如下

复制代码

//当前时间

echo date("Y-m-d H:i:s",time());

//下星期几时间

echo date("Y-m-d H:i:s",strtotime("next Thursday"));

(6)打印指定上星期几的时间戳strtotime(”last Thursday”)

代码如下

复制代码

//当前时间

echo date("Y-m-d H:i:s",time());

//指定时间

echo date("Y-m-d H:i:s",strtotime("last Thursday"));

以上PHP时间戳函数示例可知,strtotime能将任何英文文本的日期时间描述解析为Unix时间戳,我们结合mktime()或date()格式化日期时间获取指定的时间戳,实现所需要的日期时间

话说看到别人写的这么一个函数,测试了一下,有些小毛病:对于跨年日期,没有显示年份。修改如下

代码如下

复制代码

function mdate($time = NULL) {

$text = '';

$time = $time === NULL || $time > time() ? time() : intval($time);

$t = time() - $time; //时间差 (秒)

$y = date('Y', $time)-date('Y', time());//是否跨年

switch($t){

case $t == 0:

$text = '刚刚';

break;

case $t < 60:

$text = $t . '秒前'; // 一分钟内

break;

case $t < 60 * 60:

$text = floor($t / 60) . '分钟前'; //一小时内

break;

case $t < 60 * 60 * 24:

$text = floor($t / (60 * 60)) . '小时前'; // 一天内

break;

case $t < 60 * 60 * 24 * 3:

$text = floor($time/(60*60*24)) ==1 ?'昨天 ' . date('H:i', $time) : '前天 ' . date('H:i', $time) ; //昨天和前天

break;

case $t < 60 * 60 * 24 * 30:

$text = date('m月d日 H:i', $time); //一个月内

break;

case $t < 60 * 60 * 24 * 365&&$y==0:

$text = date('m月d日', $time); //一年内

break;

default:

$text = date('Y年m月d日', $time); //一年以前

break;

}

return $text;

}

ThinkPHP中:

将写好的函数放到 Common 文件夹下。系统会自动加载的。

放到这个common.php页里,common.php 固有格式,不要改名。

模板中直接调用

代码如下

复制代码

{$vo.time|mdate}

例2,简单一些的

代码如下

复制代码

function formatDate($sTime) {

//sTime=源时间,cTime=当前时间,dTime=时间差

$cTime = time();

$dTime = $cTime - $sTime;

$dDay = intval(date("Ymd",$cTime)) - intval(date("Ymd",$sTime));

$dYear = intval(date("Y",$cTime)) - intval(date("Y",$sTime));

if( $dTime < 60 ){

$dTime = $dTime."秒前";

}elseif( $dTime < 3600 ){

$dTime = intval($dTime/60)."分钟前";

}elseif( $dTime >= 3600 && $dDay == 0 ){

$dTime = "今天".date("H:i",$sTime);

}elseif($dYear==0){

$dTime = date("m-d H:i",$sTime);

}else{

$dTime = date("Y-m-d H:i",$sTime);

}

return $dTime;

}

本文原创发布php中文网,转载请注明出处,感谢您的尊重!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值