2016-08-20 5 views
-1

Как рассчитать дату начала и окончания недели за месяц, год и номер недели? Год представляет собой 4-значное целое число, например 2016; месяц - целое число, диапазон 1-12; неделя - целое число в диапазоне 1-5.введите начальную и конечную дату месяца по неделям номер месяца в php

У меня уже есть этот блок кода:

function getStartAndEndDate($week, $year) 
{ 
    $time = strtotime("1 $year", time()); 
    $day = date('w', $time); 
    $time += ((7 * $week) + 1 - $day) * 24 * 3600; 
    $return[0] = date('Y-n-j', $time); 
    $time += 6 * 24 * 3600; 
    $return[1] = date('Y-n-j', $time); 
    return $return; 
} 

Как я могу использовать или переписать эту функцию?

+2

Мы не делаем запросы. Что вы пробовали? –

+0

Correcedt grammar; удаленные избыточные фразы; улучшенное форматирование. – Prune

ответ

1

Что касается вашей функции выше в вопросе я понятия не имею, но если предположить, что неделя начинается в понедельник и заканчивается в воскресенье что-то подобное может работать

function getFirstandLastDate($year, $month, $week) { 

    $thisWeek = 1; 

    for($i = 1; $i < $week; $i++) { 
     $thisWeek = $thisWeek + 7; 
    } 

    $currentDay = date('Y-m-d',mktime(0,0,0,$month,$thisWeek,$year)); 

    $monday = strtotime('monday this week', strtotime($currentDay)); 
    $sunday = strtotime('sunday this week', strtotime($currentDay)); 

    $weekStart = date('d M y', $monday); 
    $weekEnd = date('d M y', $sunday); 

    return $weekStart . ' - ' . $weekEnd; 
} 

echo getFirstandLastDate(2016, 1, 1); 
+0

Спасибо, мне это очень помогло :) –

Смежные вопросы