laravel 5想自定义全局函数,怎么弄呢?
程序员文章站
2024-01-17 11:24:10
...
想把
//生成友好时间形式
function friendly_date( $from ){
static $now = NULL;
$now == NULL && $now = time();
! is_numeric( $from ) && $from = strtotime( $from );
$seconds = $now - $from;
$minutes = floor( $seconds / 60 );
$hours = floor( $seconds / 3600 );
$day = round( ( strtotime( date( 'Y-m-d', $now ) ) - strtotime( date( 'Y-m-d', $from ) ) ) / 86400 );
if( $seconds == 0 ){
return '刚刚';
}
if( ( $seconds >= 0 ) && ( $seconds = 0 ) && ( $minutes = 0 ) && ( $hours 0 ) {
return date( 'Y-m-d', $from );
}
switch( $day ){
case 0:
return date( '今天H:i', $from );
break;
case 1:
return date( '昨天H:i', $from );
break;
default:
//$day += 1;
return "{$day} 天前";
break;
}
}
放入函数库,怎么放呢
回复内容:
想把
//生成友好时间形式
function friendly_date( $from ){
static $now = NULL;
$now == NULL && $now = time();
! is_numeric( $from ) && $from = strtotime( $from );
$seconds = $now - $from;
$minutes = floor( $seconds / 60 );
$hours = floor( $seconds / 3600 );
$day = round( ( strtotime( date( 'Y-m-d', $now ) ) - strtotime( date( 'Y-m-d', $from ) ) ) / 86400 );
if( $seconds == 0 ){
return '刚刚';
}
if( ( $seconds >= 0 ) && ( $seconds = 0 ) && ( $minutes = 0 ) && ( $hours 0 ) {
return date( 'Y-m-d', $from );
}
switch( $day ){
case 0:
return date( '今天H:i', $from );
break;
case 1:
return date( '昨天H:i', $from );
break;
default:
//$day += 1;
return "{$day} 天前";
break;
}
}
放入函数库,怎么放呢
在app/Helpers/(目录可以自己随便来) 下新建一个文件 functions.php
在functions.php 中加入这个方法
然后在
bootstrap/autoload.php 中添加
require __DIR__.'/../app/Helpers/functions.php';
或者在
composer.json 中的 autoload 下增加
"files": [
"app/Helpers/functions.php"
]
...
"autoload": {
"classmap": [
"database"
],
"psr-4": {
"App\\": "app/"
},
"files": [
"app/helpers/functions.php"
]
},
...
参考:Creating a Helpers File
自制函数一个,供大家参考和改进
/**
* 格式化时间
* @param mixed \Carbon\Carbon $dt / Int $timestamp / String $date / String "now"
* @return date
*/
function format_time($dt)
{
$format = [
'between_one_minute' => '刚刚',
'before_minute' => '分钟前',
'after_minute' => '分钟后',
'today' => 'H:i',
'yesterday' => '昨天 H:i',
'tomorrow' => '明天 H:i',
'default' => 'n月d日 H:i',
'diff_year' => 'Y年n月d日 H:i',
'error' => '时间显示错误'
];
//创建对象
if( is_int($dt) ) {
$dt = Carbon\Carbon::createFromTimestamp($dt);
} else if( ! $dt instanceof \Carbon\Carbon) {
//错误时间
if( $dt == '0000-00-00 00:00:00' || $dt === '0' ) return $format['error'];
$dt = new Carbon\Carbon($dt);
}
$now = \Carbon\Carbon::now();
//今天
if( $dt->isToday() ) {
$diff_minute = floor(abs($now->timestamp - $dt->timestamp) / 60);
$diff_second = $now->timestamp - $dt->timestamp;
//一小时内
if($diff_minute = 0) return $format['between_one_minute'];
return $diff_second format($format['today']);
}
//昨天
if( $dt->isYesterday() ) return $dt->format($format['yesterday']);
//明天
if( $dt->isTomorrow() ) return $dt->format($format['tomorrow']);
//非今年,其他时间
if( $dt->format('Y') !== $now->format('Y') ) return $dt->format($format['diff_year']);
//今年,其他时间
return $dt->format($format['default']);
}