php自定義的格式化時(shí)間示例代碼
更新時(shí)間:2013年12月05日 17:33:36 作者:
時(shí)間剛好是5分鐘前,則對(duì)應(yīng)的時(shí)間戳就會(huì)被格式化為5分鐘前,自定義的格式化時(shí)間方法如下,感興趣的朋友可以參考下
如:時(shí)間剛好是5分鐘前,則對(duì)應(yīng)的時(shí)間戳就會(huì)被格式化為5分鐘前,不多說(shuō)了,直接貼上代碼:
/**
* 格式化時(shí)間
* @param integer $timestamp 時(shí)間戳
* @param string $format dt=日期時(shí)間 d=日期 t=時(shí)間 u=個(gè)性化 其他=自定義
* @param integer $timeoffset 時(shí)區(qū)值
* @param string $custom_format 自定義時(shí)間格式
* @return string
*/
public function dgmdate( $timestamp, $format = 'dt', $timeoffset = '9999', $custom_format = '' ) {
$return = '';
$now = time();
$day_format = 'Y-n-j';
$time_format = 'H:i:s';
$date_format = $day_format . ' ' . $time_format;
$offset = 8; //這里默認(rèn)是東八區(qū),也就是北京時(shí)間
$lang = array(
'before' => '前',
'day' => '天',
'yday' => '昨天',
'byday' => '前天',
'hour' => '小時(shí)',
'half' => '半',
'min' => '分鐘',
'sec' => '秒',
'now' => '剛剛',
);
$timeoffset = $timeoffset == 9999 ? $offset : $timeoffset;
$timestamp += $timeoffset * 3600;
switch ( $format ) {
case 'dt':
$format = $date_format;
break;
case 'd':
$format = $day_format;
break;
case 't':
$format = $time_format;
break;
}
if ( $format == 'u' ) {
$todaytimestamp = $now - ($now + $timeoffset * 3600) % 86400 + $timeoffset * 3600;
$s = gmdate( empty( $custom_format ) ? $date_format : $custom_format, $timestamp );
$time = $now + $timeoffset * 3600 - $timestamp;
if ( $timestamp >= $todaytimestamp ) {
if ( $time > 3600 ) {
$return = '<span title="' . $s . '">' . intval( $time / 3600 ) . $lang['hour'] . $lang['before'] . '</span>';
} elseif ( $time > 1800 ) {
$return = '<span title="' . $s . '">' . $lang['half'] . $lang['hour'] . $lang['before'] . '</span>';
} elseif ( $time > 60 ) {
$return = '<span title="' . $s . '">' . intval( $time / 60 ) . $lang['min'] . $lang['before'] . '</span>';
} elseif ( $time > 0 ) {
$return = '<span title="' . $s . '">' . $time . $lang['sec'] . $lang['before'] . '</span>';
} elseif ( $time == 0 ) {
$return = '<span title="' . $s . '">' . $lang['now'] . '</span>';
} else {
$return = $s;
}
} elseif ( ($days = intval( ($todaytimestamp - $timestamp) / 86400 )) >= 0 && $days < 7 ) {
if ( $days == 0 ) {
$return = '<span title="' . $s . '">' . $lang['yday'] . gmdate( $time_format, $timestamp ) . '</span>';
} elseif ( $days == 1 ) {
$return = '<span title="' . $s . '">' . $lang['byday'] . gmdate( $time_format, $timestamp ) . '</span>';
} else {
$return = '<span title="' . $s . '">' . ($days + 1) . $lang['day'] . $lang['before'] . '</span>';
}
} else {
$return = $s;
}
} else {
$return = gmdate( $format, $timestamp );
}
return $return;
}
復(fù)制代碼 代碼如下:
/**
* 格式化時(shí)間
* @param integer $timestamp 時(shí)間戳
* @param string $format dt=日期時(shí)間 d=日期 t=時(shí)間 u=個(gè)性化 其他=自定義
* @param integer $timeoffset 時(shí)區(qū)值
* @param string $custom_format 自定義時(shí)間格式
* @return string
*/
public function dgmdate( $timestamp, $format = 'dt', $timeoffset = '9999', $custom_format = '' ) {
$return = '';
$now = time();
$day_format = 'Y-n-j';
$time_format = 'H:i:s';
$date_format = $day_format . ' ' . $time_format;
$offset = 8; //這里默認(rèn)是東八區(qū),也就是北京時(shí)間
$lang = array(
'before' => '前',
'day' => '天',
'yday' => '昨天',
'byday' => '前天',
'hour' => '小時(shí)',
'half' => '半',
'min' => '分鐘',
'sec' => '秒',
'now' => '剛剛',
);
$timeoffset = $timeoffset == 9999 ? $offset : $timeoffset;
$timestamp += $timeoffset * 3600;
switch ( $format ) {
case 'dt':
$format = $date_format;
break;
case 'd':
$format = $day_format;
break;
case 't':
$format = $time_format;
break;
}
if ( $format == 'u' ) {
$todaytimestamp = $now - ($now + $timeoffset * 3600) % 86400 + $timeoffset * 3600;
$s = gmdate( empty( $custom_format ) ? $date_format : $custom_format, $timestamp );
$time = $now + $timeoffset * 3600 - $timestamp;
if ( $timestamp >= $todaytimestamp ) {
if ( $time > 3600 ) {
$return = '<span title="' . $s . '">' . intval( $time / 3600 ) . $lang['hour'] . $lang['before'] . '</span>';
} elseif ( $time > 1800 ) {
$return = '<span title="' . $s . '">' . $lang['half'] . $lang['hour'] . $lang['before'] . '</span>';
} elseif ( $time > 60 ) {
$return = '<span title="' . $s . '">' . intval( $time / 60 ) . $lang['min'] . $lang['before'] . '</span>';
} elseif ( $time > 0 ) {
$return = '<span title="' . $s . '">' . $time . $lang['sec'] . $lang['before'] . '</span>';
} elseif ( $time == 0 ) {
$return = '<span title="' . $s . '">' . $lang['now'] . '</span>';
} else {
$return = $s;
}
} elseif ( ($days = intval( ($todaytimestamp - $timestamp) / 86400 )) >= 0 && $days < 7 ) {
if ( $days == 0 ) {
$return = '<span title="' . $s . '">' . $lang['yday'] . gmdate( $time_format, $timestamp ) . '</span>';
} elseif ( $days == 1 ) {
$return = '<span title="' . $s . '">' . $lang['byday'] . gmdate( $time_format, $timestamp ) . '</span>';
} else {
$return = '<span title="' . $s . '">' . ($days + 1) . $lang['day'] . $lang['before'] . '</span>';
}
} else {
$return = $s;
}
} else {
$return = gmdate( $format, $timestamp );
}
return $return;
}
您可能感興趣的文章:
- php Smarty date_format [格式化時(shí)間日期]
- php格式化時(shí)間戳顯示友好的時(shí)間實(shí)現(xiàn)思路及代碼
- php格式化時(shí)間戳
- PHP獲取當(dāng)前日期和時(shí)間及格式化方法參數(shù)
- PHP+Mysql日期時(shí)間如何轉(zhuǎn)換(UNIX時(shí)間戳和格式化日期)
- php格式化日期和時(shí)間格式化示例分享
- PHP格式化顯示時(shí)間date()函數(shù)代碼
- php時(shí)間戳格式化顯示友好的時(shí)間函數(shù)分享
- PHP日期函數(shù)date格式化UNIX時(shí)間的方法
- PHP使用gmdate實(shí)現(xiàn)將一個(gè)UNIX 時(shí)間格式化成GMT文本的方法
- PHP常用函數(shù)之格式化時(shí)間操作示例
相關(guān)文章
Yii安裝EClientScript插件擴(kuò)展實(shí)現(xiàn)css,js文件代碼壓縮合并加載功能
這篇文章主要介紹了Yii安裝EClientScript插件擴(kuò)展實(shí)現(xiàn)css,js文件代碼壓縮合并加載功能,分析了EClientScript插件的下載、安裝、設(shè)置及使用的相關(guān)技巧,需要的朋友可以參考下2016-07-07
使用swoole 定時(shí)器變更超時(shí)未支付訂單狀態(tài)的解決方案
本文主要是借助 swoole 定時(shí)器和 redis 的 zset 來(lái)實(shí)現(xiàn)的定時(shí)檢查并過(guò)期未支付訂單,感興趣的朋友跟隨小編一起看看吧2019-07-07
thinkphp5框架實(shí)現(xiàn)數(shù)據(jù)庫(kù)讀取的數(shù)據(jù)轉(zhuǎn)換成json格式示例
這篇文章主要介紹了thinkphp5框架實(shí)現(xiàn)數(shù)據(jù)庫(kù)讀取的數(shù)據(jù)轉(zhuǎn)換成json格式,涉及thinkPHP5數(shù)據(jù)庫(kù)讀取數(shù)據(jù)與json格式轉(zhuǎn)換相關(guān)操作技巧,需要的朋友可以參考下2019-10-10
php發(fā)送post請(qǐng)求函數(shù)分享
這篇文章主要介紹了一個(gè)php發(fā)送post請(qǐng)求的函數(shù),開(kāi)發(fā)中經(jīng)常會(huì)用到,需要的朋友可以參考下2014-03-03
PHP+百度AI OCR文字識(shí)別實(shí)現(xiàn)了圖片的文字識(shí)別功能
這篇文章主要介紹了PHP+百度AI OCR文字識(shí)別實(shí)現(xiàn)了圖片的文字識(shí)別功能,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2019-05-05
PDO實(shí)現(xiàn)學(xué)生管理系統(tǒng)
這篇文章主要為大家詳細(xì)介紹了PDO實(shí)現(xiàn)學(xué)生管理系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-03-03
php實(shí)現(xiàn)的九九乘法口訣表簡(jiǎn)潔版
這篇文章主要介紹了php實(shí)現(xiàn)的九九乘法口訣表簡(jiǎn)潔版,代碼簡(jiǎn)潔易懂,可以用來(lái)回答面試題哦,需要的朋友可以參考下2014-07-07

