早睡早起,方能养生!
Sleep early rise early, way to keep healthy!

PHP 获取两个时间之间 所有天数 月数

super
2019-01-22 17:04
views 1902

2020-06-17

// 周一开始时间戳  与周日结束时间戳
$today = strtotime(date('Y-m-d'));
$weekday = date('w') == 0 ? 7 : date('w');
$start = $today - ($weekday - 1) * 3600 * 24;
$end = $start + 7 * 24 * 3600  - 1;

 

原文

/**
 * 获取两个日期之间所有周
 * 这个有bug,开始日期若为周日,周日会跟后面周 连到一块
 * @param  string $start_time 2018-01-01
 * @param  string $end_time 2019-01-01
 * @return array
 */
function prWeeks($start, $end)
{
    $dt_start = strtotime($start);
    $firstWeekMonday = strtotime('this week Monday', $dt_start);
    $dt_end = strtotime($end);
    $days = [];
    array_push($days, $dt_start);
    while ($firstWeekMonday < $dt_end) {
        $firstWeekMonday += 604800;
        array_push($days, $firstWeekMonday);// 7*24*60*60
    }
    return $days;
}

/**
 * 获取两个日期之间所有月份
 * @param  string $start_time 2018-01-01
 * @param  string $end_time 2019-01-01
 * @return array
 */
function prMonths($start_time, $end_time)
{
    $time1 = strtotime($start_time);
    $time2 = strtotime($end_time);

    $monthArray = [];
    $monthArray[] = date('Y-m', $time1); // 当前月;
    while(($time1 = strtotime('+1 month', $time1)) <= $time2) {
        $monthArray[] = date('Y-m',$time1);
    }
    return $monthArray;
}

// 获取本月开始时间戳
mktime(0, 0, 0, date('m'), 1, date('Y'));

// 获取本月结束时间戳
mktime(0, 0, 0, date('m') + 1, 1, date('Y')) - 1;

// 获取今天开始时间戳
mktime(0, 0, 0, date('m'), date('d'), date('Y'));

// 获取今天结束时间戳
mktime(23, 59, 59, date('m'), date('d'), date('Y'));

// 获取今天是周几
$whatDay = date('w', time());//  == 0 是周末 其他1=一 2=二...依次类推


分享
0 条讨论
top