PHP怎么获取每个月的最后一个周五日期

获取每个月最后一个周五日期,比如3月的最后一个周五,依次类推

阅读 4.4k
4 个回答

date('Y-m-d',strtotime("2017-04-01 last friday"))

// 获取每个月最后一个周五日期,比如3月的最后一个周五,依次类推
// 获取每个月最后一个周五日期,比如3月的最后一个周五,依次类推
date_default_timezone_set('PRC');
$month_day =  date('t');  
$friday    = 5;
$one_day = strtotime(date('Y-m-01'));
$bad = $friday - date( 'w', $one_day) != 0 ? $one_day + (($friday - date( 'w', $one_day))*24*60*60 ) : time();
$num = 0;
while(  date('j',$bad) + 7 <= $month_day)
{
    $month_day -= 7;
    ++$num;
}
echo date('Y').'-'.$month_day.'-'.($num * 7 + date('j',$bad));

echo date('Y-m-d H:i:s', strtotime('first friday of next month -7 days'));

/**
 * 返回指定年份的月份最后周五日期
 * 
 * @author Flc 2017-03-15 22:24:45
 * @param  integer $month 月份
 * @param  integer $year  年份
 * @return 日期        YYYY-MM-DD
 */
function getFridayDate($month, $year = null)
{
    $months = [
        1  => 'January',
        2  => 'February',
        3  => 'March',
        4  => 'April',
        5  => 'May',
        6  => 'June ',
        7  => 'July',
        8  => 'August',
        9  => 'September',
        10 => 'October',
        11 => 'November',
        12 => 'December',
    ];

    if (! array_key_exists($month, $months)) {
        return false;
    }

    if ($year == null) {
        $year = date('Y');
    }

    return date('Y-m-d', strtotime('last Friday of ' . $months[$month] . ' ' . $year));
}

echo getFridayDate(2);  // 2017-02-24
echo getFridayDate(2, 2015);  // 2015-02-27
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题