Date.php 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. <?php
  2. namespace Heanup\Frame\Helper;
  3. /**
  4. * 文件操作
  5. */
  6. class Date extends \Heanup\Frame\Helper
  7. {
  8. /**
  9. * 转换为友好时间
  10. * @param int|string $timestamp
  11. * @return string
  12. */
  13. public static function convert($timestamp)
  14. {
  15. if (!is_numeric($timestamp)) {
  16. $timestamp = strtotime($timestamp);
  17. }
  18. $now = time();
  19. $interval = abs($now - $timestamp);
  20. $today = strtotime(date("Ymd"));
  21. $tomorrow = strtotime(date("Ymd", $now + 86400));
  22. $thisYear = strtotime(date("Y-01-01 00:00"));
  23. if ($interval < 60) {
  24. $string = "1分钟前";
  25. } else if ($interval < 3600) {
  26. $string = floor($interval / 60) . '分钟前';
  27. } else if ($today < $timestamp AND $timestamp < $tomorrow) {
  28. $string = '今天' . date('H:i', $timestamp);
  29. } else if ($thisYear < $timestamp) {
  30. $string = date('m-d H:i', $timestamp);
  31. } else {
  32. $string = date('y-m-d H:i', $timestamp);
  33. }
  34. return $string;
  35. }
  36. /**
  37. * 获取相对时间
  38. * @param $timestamp
  39. * @param $customString ;
  40. * @return string
  41. */
  42. public static function related($timestamp, $customString = '')
  43. {
  44. if (!is_numeric($timestamp)) {
  45. $timestamp = strtotime($timestamp);
  46. }
  47. $interval = abs(time() - $timestamp);
  48. if ($interval == 0) {
  49. $interval = 1;
  50. }
  51. if ($interval < 3600) {
  52. $string = ceil($interval / 60) . '分钟前';
  53. } elseif ($interval < 86400) {
  54. $string = ceil($interval / 3600) . '小时前';
  55. } else {
  56. $string = ceil($interval / 86400) . '天前';
  57. }
  58. $string = $string . $customString;
  59. return $string;
  60. }
  61. }