我是靠谱客的博主 文静小懒虫,最近开发中收集的这篇文章主要介绍计算两个时间中的每个周的开始时间和结束时间,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

计算两个时间中的每个周的开始时间和开始时间

场景

中文描述

计算两个时间中的每个周的开始时间和开始时间

代码示例

计算两个时间中的每个周的开始时间和结束时间

 //计算周
private function _week($sDate, $eDate)
{
$range_arr = array();
// 检查日期有效性
$this->check_date(array($sDate, $eDate));
// 计算各个周的起始时间
do {
$range
= [];
$weekInfo
= $this->get_weekInfo_by_date($sDate);
$end_day
= $weekInfo['week_end_day'];
$start
= $this->substr_date($weekInfo['week_start_day']);
$end
= $this->substr_date($weekInfo['week_end_day']);
$range["start"]
= $start;
$range["end"]
= $end;
$range["current"] = date("Y-m", strtotime($start));
$range["week"]
= date("W", strtotime($start));
$range_arr[]
= $range;
$sDate
= date('Y-m-d', strtotime($sDate) + 7 * 86400);
} while ($end_day < $eDate);
return $range_arr;
}
/**
* 截取日期中的月份和日
* @param string $date
* @return string $date
*/
private function substr_date($date)
{
if (!$date) return false;
return date('Y-m-d', strtotime($date));
}
/**
* 根据指定日期获取所在周的起始时间和结束时间
*/
private function get_weekInfo_by_date($date)
{
$idx
= strftime("%u", strtotime($date));
$mon_idx = $idx - 1;
$sun_idx = $idx - 7;
return array(
'week_start_day' => strftime('%Y-%m-%d', strtotime($date) - $mon_idx * 86400),
'week_end_day'
=> strftime('%Y-%m-%d', strtotime($date) - $sun_idx * 86400),
);
}
/**
* 检查日期的有效性 YYYY-mm-dd
* @param array $date_arr
* @return bool
*/
private function check_date($date_arr)
{
$invalid_date_arr = array();
foreach ($date_arr as $row) {
$timestamp = strtotime($row);
$standard
= date('Y-m-d', $timestamp);
if ($standard != $row) $invalid_date_arr[] = $row;
}
if (!empty($invalid_date_arr)) {
return false;
}
return true;
}

最后

以上就是文静小懒虫为你收集整理的计算两个时间中的每个周的开始时间和结束时间的全部内容,希望文章能够帮你解决计算两个时间中的每个周的开始时间和结束时间所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(51)

评论列表共有 0 条评论

立即
投稿
返回
顶部