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分鐘前,不多說了,直接貼上代碼:
/**
* 格式化時(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)文章
PHP中通過exec調(diào)用python腳本報(bào)ModuleNotFoundError錯(cuò)誤問題及解決方法
這篇文章主要介紹了解決php中通過exec調(diào)用python腳本報(bào)ModuleNotFoundError錯(cuò)誤,本文是在 Ubuntu 20.04 上以 ubuntu 用戶身份進(jìn)行的測(cè)試,需要的朋友可以參考下2023-07-07ThinkPHP實(shí)現(xiàn)微信支付(jsapi支付)流程教程詳解
這篇文章主要介紹了ThinkPHP實(shí)現(xiàn)微信支付(jsapi支付)流程教程詳解,需要的朋友可以參考下2018-03-03PDO預(yù)處理語句PDOStatement對(duì)象使用總結(jié)
這篇文章主要介紹了PDO預(yù)處理語句PDOStatement對(duì)象使用總結(jié),本文介紹了PDOStatement的方法及常用方法的使用例子,需要的朋友可以參考下2014-11-11淺談PHP鏈表數(shù)據(jù)結(jié)構(gòu)(單鏈表)
下面小編就為大家?guī)硪黄獪\談PHP鏈表數(shù)據(jù)結(jié)構(gòu)(單鏈表)。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2016-06-06