当前位置: 帮助文档 > > 正文

自定义函数使用与存放规则


二次开发中,经常要自定义一些函数,这些函数如果直接写到系统函数库,很可能在以后的升级中会冲突。

所以,我们需要五指系统提供的自动加载函数库的方法来加载函数。

 

函数文件存放路径:

/coreframe/extend/function/

定义文件名为:myname.func.php

完整的路径即为:/coreframe/extend/function/myname.func.php

只要将文件存放至此,系统自然会自动加载,无需做其他处理

下面给出一个自定义函数:

  1. <?php
  2. //+----------------------------------------------------------------------
  3. // | wuzhicms [ 五指互联网站内容管理系统 ]
  4. // | Copyright (c) 2014-2015 http://www.wuzhicms.com All rights reserved.
  5. / | Licensed ( http://www.wuzhicms.com/licenses/ )
  6. // | Author: wangcanjia <phpip@qq.com>
  7. //+----------------------------------------------------------------------
  8. /**
  9. * 友好格式化时间
  10. * @param int $timestamp 时间
  11. * @param array $formats
  12. * @return string
  13. */
  14. function time_format2($timestamp, $formats = null) {
  15. if ($formats == null) {
  16. $formats = array(
  17. 'DAY' => '%s天前',
  18. 'DAY_HOUR' => '%s天%s小时前',
  19. 'HOUR' => '%s小时',
  20. 'HOUR_MINUTE' => '%s小时%s分前',
  21. 'MINUTE' => '%s分钟前',
  22. 'MINUTE_SECOND' => '%s分钟%s秒前',
  23. 'SECOND' => '%s秒前',
  24. );
  25. }
  26. /* 计算出时间差 */
  27. $seconds = time() - $timestamp;
  28. $minutes = floor($seconds / 60);
  29. $hours = floor($minutes / 60);
  30. $days = floor($hours / 24);
  31. if ($days > 0 && $days < 31) {
  32. $diffFormat = 'DAY';
  33. } elseif($days == 0) {
  34. $diffFormat = ($hours > 0) ? 'HOUR' : 'MINUTE';
  35. if ($diffFormat == 'HOUR') {
  36. $diffFormat .= ($minutes > 0 && ($minutes - $hours * 60) > 0) ? '_MINUTE' : '';
  37. } else {
  38. $diffFormat = (($seconds - $minutes * 60) > 0 && $minutes > 0)
  39. ? $diffFormat.'_SECOND' : 'SECOND';
  40. }
  41. }else{
  42. $diffFormat = 'TURE_DATE_TIME';//超出30天, 正常时间显示
  43. }
  44. $dateDiff = null;
  45. switch ($diffFormat) {
  46. case 'DAY':
  47. $dateDiff = sprintf($formats[$diffFormat], $days);
  48. break;
  49. case 'DAY_HOUR':
  50. $dateDiff = sprintf($formats[$diffFormat], $days, $hours - $days * 60);
  51. break;
  52. case 'HOUR':
  53. $dateDiff = sprintf($formats[$diffFormat], $hours);
  54. break;
  55. case 'HOUR_MINUTE':
  56. $dateDiff = sprintf($formats[$diffFormat], $hours, $minutes - $hours * 60);
  57. break;
  58. case 'MINUTE':
  59. $dateDiff = sprintf($formats[$diffFormat], $minutes);
  60. break;
  61. case 'MINUTE_SECOND':
  62. $dateDiff = sprintf($formats[$diffFormat], $minutes, $seconds - $minutes * 60);
  63. break;
  64. case 'SECOND':
  65. $dateDiff = sprintf($formats[$diffFormat], $seconds);
  66. break;
  67. default:
  68. $dateDiff = date('Y-m-d H:i:s',$timestamp);
  69. }
  70. return $dateDiff;
  71. }

在模板文件中,可以直接通过:

{time_format2(‘时间戳’)}

直接使用