Maison >développement back-end >tutoriel php >laravel 5想自定义全局函数,怎么弄呢?
想把
<code>//生成友好时间形式 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; } }</code>
放入函数库,怎么放呢
想把
<code>//生成友好时间形式 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; } }</code>
放入函数库,怎么放呢
在app/Helpers/(目录可以自己随便来) 下新建一个文件 functions.php
在functions.php 中加入这个方法
然后在
bootstrap/autoload.php 中添加
<code>require __DIR__.'/../app/Helpers/functions.php';</code>
或者在
composer.json 中的 autoload 下增加
<code>"files": [ "app/Helpers/functions.php" ]</code>
<code>... "autoload": { "classmap": [ "database" ], "psr-4": { "App\\": "app/" }, "files": [ "app/helpers/functions.php" ] }, ...</code>
参考:Creating a Helpers File
自制函数一个,供大家参考和改进
<code> /** * 格式化时间 * @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']); }</code>