1.获得距离今天的某个时间段的开始时间和结束时间

复制代码
  1. function gettimestamp($targetTime){
  2. switch ($targetTime){
  3. case 'today'://今天
  4. $timeamp['start'] = strtotime(date('Y-m-d'));
  5. $timeamp['over'] = strtotime(date('Y-m-d',strtotime('+1 day')));
  6. break;
  7. case 'yesterday'://昨天
  8. $timeamp['start'] = strtotime(date('Y-m-d',strtotime('-1 day')));
  9. $timeamp['over'] = strtotime(date('Y-m-d'));
  10. break;
  11. case 'beforyesterday'://前天
  12. $timeamp['start'] = strtotime(date('Y-m-d',strtotime('-2 day')));
  13. $timeamp['over'] = strtotime(date('Y-m-d',strtotime('-1 day')));
  14. break;
  15. case 'beforweek'://本周
  16. $timeamp['start'] = strtotime(date("Y-m-d H:i:s",mktime(0, 0 , 0,date("m"),date("d")-date("w")+1,date("Y"))));
  17. $timeamp['over'] = strtotime(date("Y-m-d H:i:s",mktime(23,59,59,date("m"),date("d")-date("w")+7,date("Y"))));
  18. break;
  19. case 'nowmonth'://本月
  20. $timeamp['start'] = strtotime(date('Y-m-01'));
  21. $timeamp['over'] = strtotime(date('Y-m-d',strtotime('+1 day')));
  22. break;
  23. case 'permonth'://上月
  24. $timeamp['start'] = strtotime(date('Y-m-01',strtotime('-1 month')));
  25. $timeamp['over'] = strtotime(date('Y-m-01'));
  26. break;
  27. case 'preweek'://上周 注意我们是从周一开始算
  28. $timeamp['start'] = strtotime(date('Y-m-d',strtotime('-2 week Monday')));
  29. $timeamp['over'] = strtotime(date('Y-m-d',strtotime('-1 week Monday +1 day')));
  30. break;
  31. case 'nowweek'://本周
  32. $timeamp['start'] = strtotime(date('Y-m-d',strtotime('-1 week Monday')));
  33. $timeamp['over'] = strtotime(date('Y-m-d',strtotime('+1 day')));
  34. break;
  35.  
  36. case 'nextday'://明天
  37. $timeamp['start'] = strtotime(date('Y-m-d'));
  38. $timeamp['over'] = strtotime(date('Y-m-d'),strtotime('+1 day'));
  39. break;
  40. case 'preyear'://去年
  41. $timeamp['start'] = strtotime(date('Y-01-01',strtotime('-1 year')));
  42. $timeamp['over'] = strtotime(date('Y-12-31',strtotime('-1 year')));
  43. break;
  44. case 'nowyear'://今年
  45. $timeamp['start'] = strtotime(date('Y-01-01'));
  46. $timeamp['over'] = strtotime(date('Y-m-d',strtotime('+1 day')));
  47. break;
  48. case 'quarter'://季度
  49. $quarter = ceil((date('m'))/3);
  50. $timeamp['start'] = mktime(0, 0, 0,$quarter*3-2,1,date('Y'));
  51. $timeamp['over'] = mktime(0, 0, 0,$quarter*3+1,1,date('Y'));
  52. break;
  53. default:
  54. $timeamp['start'] = strtotime(date('Y-m-d'));
  55. $timeamp['over'] = strtotime(date('Y-m-d',strtotime('+1 day')));
  56. break;
  57. }
  58. return $timeamp;
  59. }

2.获取某个时间为多久之前

复制代码
  1. function formatTime($timestamp) {
  2. $currentTime = time(); // 获取当前时间戳
  3. $timeDifference = $currentTime - $timestamp; // 计算差值
  4.  
  5. if ($timeDifference < 60) {
  6. return "刚刚";
  7. } elseif ($timeDifference < 3600) {
  8. return floor($timeDifference / 60) . "分钟前";
  9. } elseif ($timeDifference < 86400) {
  10. return floor($timeDifference / 3600) . "小时前";
  11. } elseif ($timeDifference < 604800){
  12. return floor($timeDifference / 86400) . "天前";
  13. } else{
  14. return date('Y-m-d',$timestamp);
  15. }
  16. }

3.将秒数转换为H:i:s格式

复制代码
  1. function convertSecondsToTime($seconds) {
  2. $hours = floor($seconds / 3600); // 计算小时数
  3. $minutes = floor(($seconds % 3600) / 60); // 计算分钟数
  4. $remainingSeconds = $seconds % 60; // 计算剩余的秒数
  5. // 格式化输出
  6. $hours = str_pad($hours, 2, '0', STR_PAD_LEFT); // 使用前导零填充小时数
  7. $minutes = str_pad($minutes, 2, '0', STR_PAD_LEFT); // 使用前导零填充分钟数
  8. $remainingSeconds = str_pad($remainingSeconds, 2, '0', STR_PAD_LEFT); // 使用前导零填充剩余的秒数
  9. $timeString = $hours . ':' . $minutes . ':' . $remainingSeconds;
  10. return $timeString;
  11. }