国内流行的内容管理系统(CMS)多端全媒体解决方案 https://www.dedebiz.com
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

171 lines
4.4KB

  1. <?php
  2. if (!defined('DEDEINC')) exit('dedebiz');
  3. /**
  4. * 时间戳小助手
  5. *
  6. * @version $Id: time.helper.php 1 2010-07-05 11:43:09Z tianya $
  7. * @package DedeBIZ.Helpers
  8. * @copyright Copyright (c) 2022, DedeBIZ.COM
  9. * @license https://www.dedebiz.com/license
  10. * @link https://www.dedebiz.com
  11. */
  12. /**
  13. * 返回格林威治标准时间
  14. *
  15. * @param string $format 字符串格式
  16. * @param string $timest 时间基准
  17. * @return string
  18. */
  19. if (!function_exists('MyDate')) {
  20. function MyDate($format = 'Y-m-d H:i:s', $timest = 0)
  21. {
  22. global $cfg_cli_time;
  23. $addtime = $cfg_cli_time * 3600;
  24. if (empty($format)) {
  25. $format = 'Y-m-d H:i:s';
  26. }
  27. return gmdate($format, $timest + $addtime);
  28. }
  29. }
  30. /**
  31. * 从普通时间转换为Linux时间截
  32. *
  33. * @param string $dtime 普通时间
  34. * @return string
  35. */
  36. if (!function_exists('GetMkTime')) {
  37. function GetMkTime($dtime)
  38. {
  39. if (!preg_match("/[^0-9]/", $dtime)) {
  40. return $dtime;
  41. }
  42. $dtime = trim($dtime);
  43. $dt = array(1970, 1, 1, 0, 0, 0);
  44. $dtime = preg_replace("/[\r\n\t]|日|秒/", " ", $dtime);
  45. $dtime = str_replace("年", "-", $dtime);
  46. $dtime = str_replace("月", "-", $dtime);
  47. $dtime = str_replace("时", ":", $dtime);
  48. $dtime = str_replace("分", ":", $dtime);
  49. $dtime = trim(preg_replace("/[ ]{1,}/", " ", $dtime));
  50. $ds = explode(" ", $dtime);
  51. $ymd = explode("-", $ds[0]);
  52. if (!isset($ymd[1])) {
  53. $ymd = explode(".", $ds[0]);
  54. }
  55. if (isset($ymd[0])) {
  56. $dt[0] = $ymd[0];
  57. }
  58. if (isset($ymd[1])) $dt[1] = $ymd[1];
  59. if (isset($ymd[2])) $dt[2] = $ymd[2];
  60. if (strlen($dt[0]) == 2) $dt[0] = '20'.$dt[0];
  61. if (isset($ds[1])) {
  62. $hms = explode(":", $ds[1]);
  63. if (isset($hms[0])) $dt[3] = $hms[0];
  64. if (isset($hms[1])) $dt[4] = $hms[1];
  65. if (isset($hms[2])) $dt[5] = $hms[2];
  66. }
  67. foreach ($dt as $k => $v) {
  68. $v = preg_replace("/^0{1,}/", '', trim($v));
  69. if ($v == '') {
  70. $dt[$k] = 0;
  71. }
  72. }
  73. $mt = mktime($dt[3], $dt[4], $dt[5], $dt[1], $dt[2], $dt[0]);
  74. if (!empty($mt)) {
  75. return $mt;
  76. } else {
  77. return time();
  78. }
  79. }
  80. }
  81. /**
  82. * 减去时间
  83. *
  84. * @param int $ntime 当前时间
  85. * @param int $ctime 减少的时间
  86. * @return int
  87. */
  88. if (!function_exists('SubDay')) {
  89. function SubDay($ntime, $ctime)
  90. {
  91. $dayst = 3600 * 24;
  92. $cday = ceil(($ntime - $ctime) / $dayst);
  93. return $cday;
  94. }
  95. }
  96. /**
  97. * 增加天数
  98. *
  99. * @param int $ntime 当前时间
  100. * @param int $aday 增加天数
  101. * @return int
  102. */
  103. if (!function_exists('AddDay')) {
  104. function AddDay($ntime, $aday)
  105. {
  106. $dayst = 3600 * 24;
  107. $oktime = $ntime + ($aday * $dayst);
  108. return $oktime;
  109. }
  110. }
  111. /**
  112. * 返回格式化(Y-m-d H:i:s)的是时间
  113. *
  114. * @param int $mktime 时间戳
  115. * @return string
  116. */
  117. if (!function_exists('GetDateTimeMk')) {
  118. function GetDateTimeMk($mktime)
  119. {
  120. return MyDate('Y-m-d H:i:s', $mktime);
  121. }
  122. }
  123. /**
  124. * 返回格式化(Y-m-d)的日期
  125. *
  126. * @param int $mktime 时间戳
  127. * @return string
  128. */
  129. if (!function_exists('GetDateMk')) {
  130. function GetDateMk($mktime)
  131. {
  132. if ($mktime == "0") return "暂无";
  133. else return MyDate("Y-m-d", $mktime);
  134. }
  135. }
  136. /**
  137. * 将时间转换为距离现在的精确时间
  138. *
  139. * @param int $seconds 秒数
  140. * @return string
  141. */
  142. if (!function_exists('FloorTime')) {
  143. function FloorTime($seconds)
  144. {
  145. $times = '';
  146. $days = floor(($seconds / 86400) % 30);
  147. $hours = floor(($seconds / 3600) % 24);
  148. $minutes = floor(($seconds / 60) % 60);
  149. $seconds = floor($seconds % 60);
  150. if ($seconds >= 1) $times .= $seconds.'秒';
  151. if ($minutes >= 1) $times = $minutes.'分钟 '.$times;
  152. if ($hours >= 1) $times = $hours.'小时 '.$times;
  153. if ($days >= 1) $times = $days.'天';
  154. if ($days > 30) return false;
  155. $times .= '前';
  156. return str_replace(" ", '', $times);
  157. }
  158. }