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; } |