Timestamp.php 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101
  1. <?php
  2. namespace time;
  3. /**
  4. * Created by PhpStorm.
  5. * User: Administrator
  6. * Date: 2022/8/10
  7. * Time: 19:16
  8. */
  9. class Timestamp
  10. {
  11. /**
  12. * 获取毫秒级别的时间戳
  13. * @return float
  14. */
  15. public static function getMillisecond()
  16. {
  17. list($t1, $t2) = explode(' ', microtime());
  18. $time = (float)sprintf('%.0f', (floatval($t1) + floatval($t2)) * 1000);
  19. return $time;
  20. }
  21. /**
  22. * 获取今日开始时间戳
  23. * https://www.cnblogs.com/wyl0514/p/11007695.html
  24. * mktime(hour,minute,second,month,day,year)
  25. */
  26. public static function beginToday()
  27. {
  28. //$todaystart = strtotime(date('Y-m-d'.'00:00:00',time()));
  29. return mktime(0, 0, 0, date('m'), date('d'), date('Y'));
  30. }
  31. /**
  32. * 获取今日结束时间戳
  33. * @return false|int
  34. */
  35. public static function endToday()
  36. {
  37. //$todayend = strtotime(date('Y-m-d'.'00:00:00',time()+3600*24));
  38. return mktime(0, 0, 0, date('m'), date('d') + 1, date('Y')) - 1;
  39. }
  40. /**
  41. * 获取昨日开始时间戳
  42. * @return false|int
  43. */
  44. public static function beginYesterday()
  45. {
  46. return mktime(0, 0, 0, date('m'), date('d') - 1, date('Y'));
  47. }
  48. /**
  49. * 获取昨日结束时间戳
  50. * @return false|int
  51. */
  52. public static function endYesterday()
  53. {
  54. return mktime(0, 0, 0, date('m'), date('d'), date('Y')) - 1;
  55. }
  56. /**
  57. * 获取指定范围内每天的起始结束时间戳
  58. * @param $startTime
  59. * @param $endTime
  60. * @return array
  61. */
  62. public static function dayTimeRangeList($startTime, $endTime)
  63. {
  64. $begin = self::dayStart($endTime);
  65. $arr = [];
  66. $arr[] = [$begin, $endTime];
  67. while (($begin = strtotime('-1 day', $begin)) >= $startTime) {
  68. $arr[] = [$begin, self::dayEnd($begin)];
  69. }
  70. if (end($arr)[0] > $startTime) {
  71. $arr[] = [$startTime, self::dayEnd($begin)];
  72. }
  73. return $arr;
  74. }
  75. /**
  76. * 时间戳 转 当日起始时间戳
  77. * @param $timestamp
  78. * @return false|int
  79. */
  80. public static function dayStart($timestamp)
  81. {
  82. return strtotime(date('Y-m-d 00:00:00', $timestamp));
  83. }
  84. /**
  85. * 时间戳 转 当日结束时间戳
  86. * @param $timestamp
  87. * @return false|int
  88. */
  89. public static function dayEnd($timestamp)
  90. {
  91. return strtotime(date('Y-m-d 23:59:59', $timestamp));
  92. }
  93. }