两个日期这间的间隔天数
日期 两个 天数 间隔
2023-09-14 08:56:56 时间
/** * 两个日期这间的间隔天数 * @param $date1 * @param $date2 * @return float */ public static function daysBetweenDates($date1, $date2) { $days = floor(abs($date1 - $date2) / 86400); return $days; } /** * 获取两个时间间隔之间的所有日期 * @param string|int $minDay like "2015-05-05" or unix_timestamp * @param string|int $maxDay like "2015-06-05" or unix_timestamp * @return array ['2015-050-05','2015-05-06',...] */ public static function getAllDays($minDay, $maxDay) { $minTime = is_numeric($minDay) ? intval($minDay) : strtotime($minDay); $maxTime = is_numeric($maxDay) ? intval($maxDay) : strtotime($maxDay); $res = []; for ($current = $minTime; $current <= $maxTime; $current = strtotime(date("Y-m-d", $current) . " +1 day")) { $res[] = date("Y-m-d", $current); } return $res; } /** * 获取两个时间间隔之间的所有星期 (当年的第几周) * @param string|int $minDay like "2015-05-05" or unix_timestamp * @param string|int $maxDay like "2015-06-05" or unix_timestamp * @return array ['2015 05','2015 06',...] */ public static function getAllWeeks($minDay, $maxDay) { $minTime = is_numeric($minDay) ? intval($minDay) : strtotime($minDay); $maxTime = is_numeric($maxDay) ? intval($maxDay) : strtotime($maxDay); $year = date("Y", $minTime); $week = intval(date("N", $minTime)); $startTime = $minTime - ($week - 1) * 86400; $startYear = date("Y", $startTime); if ($startYear != $year) { $startTime = strtotime("{$year}-01-01"); } $endWeek = intval(date("N", $maxTime)); $endTime = $maxTime + (7 - $endWeek) * 86400; $res = []; for ($current = $startTime; $current <= $endTime; $current = strtotime(date("Y-m-d", $current) . " +1 week")) { $res[] = date("Y W", $current); } return $res; } /** * 获取两个时间间隔之间的所有星期 (第几周) * @param string|int $minDay like "2015-05-05" or unix_timestamp * @param string|int $maxDay like "2015-06-05" or unix_timestamp * @return array ['2015-05','2015-06',...] */ public static function getAllMonth($minDay, $maxDay) { $minTime = is_numeric($minDay) ? intval($minDay) : strtotime($minDay); $maxTime = is_numeric($maxDay) ? intval($maxDay) : strtotime($maxDay); $startTime = strtotime(date("Y-m-01", $minTime)); $res = []; for ($current = $startTime; $current <= $maxTime; $current = strtotime(date("Y-m-d", $current) . " +1 month")) { $res[] = date("Y-m", $current); } return $res; }
相关文章
- 计算两个日期中间的天数_excel两个日期相减计算天数
- golang如何计算两个日期之间的日期差?
- Linux date命令:显示日期与时间
- 【Android从零单排系列十一】《Android视图控件——日历、日期、时间选择控件》
- PHP正则匹配日期和时间(时间戳转换)的实例代码
- Java 判断两个日期相差多少天详解编程语言
- MySQL 日期区间查询实现方法(mysql日期区间查询)
- 操作Oracle数据库中的日期操作简介(oracle数据库的日期)
- 值MySQL日期默认值:回到零点开始(mysqldate默认)
- 比较比较Oracle中两个日期的差异(oracle日期之间)
- MySQL 日期格式转换简明指南(mysql日期转换)
- Oracle如何将秒转换为日期(oracle 中秒转日期)
- MySQL日期比较如何对比两个日期(mysql两日期对比)
- Oracle计算两个日期之间的差距(oracle两个日期相隔)
- 计算Oracle日期之间的差异(oracle两个日期之差)
- Oracle比较两个日期的差异(oracle两个日期)
- 用javascript实现计算两个日期的间隔天数
- MSSQL计算两个日期相差的工作天数的语句
- js时间戳格式化成日期格式的多种方法
- ASP.NET如何获取两个日期之间的天数
- ASP.NET使用Subtract方法获取两个日期之间的天数