时间戳是我们在时间日期对比时常用到一个小功能,下面我先来给各位介绍strtotime时间戳转换的一些方法与利用它来做一个日期格式化的几分钟、几小时前、几天前的一个实例。
<script>ec(2);</script>
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
$text = $t . '秒前'; // 一分钟内
break;
case $t
$text = floor($t / 60) . '分钟前'; //一小时内
break;
case $t
$text = floor($t / (60 * 60)) . '小时前'; // 一天内
break;
case $t
$text = floor($time/(60*60*24)) ==1 ?'昨天 ' . date('H:i', $time) : '前天 ' . date('H:i', $time) ; //昨天和前天
break;
case $t
$text = date('m月d日 H:i', $time); //一个月内
break;
case $t
$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
$dTime = $dTime."秒前";
}elseif( $dTime
$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;
}
|
Stellungnahme:Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn