2014-02-17 2 views
-1

У меня есть номер недели года и дня недели, мне нужно получить точную дату.У меня есть номер недели года и недели, как я могу получить дату в PHP

Это то, что я пробовал до сих пор. Я нашел этот код на переполнение стека, но это не точно:

function required_date($week_num, $day) { 
    $week_of_year = sprintf('%02d', date('W', strtotime(date('Y-m-01'))) + $week_num); 
    $day_of_week = date('N', strtotime($day)); 
    $timestamp = strtotime(date('Y') . '-W' . $week_of_year . '-' . $day_of_week); 

    return $timestamp; 
} 


$timestamp = required_date(8, 'wednesday'); 
echo date('Y-m-d', $timestamp); 

ВЫВОД: 2014-03-26

ЗАПЛАНИРОВАННЫЕ: 8-я неделя и день среда имеет дату 2014- 02-19 согласно календарю.

+1

@putvande, пожалуйста, прочитайте вопрос еще раз, это совершенно другой вопрос – Jade

ответ

0

Хорошо, я понял это сам, Вот код:

function getWeekDates($week, $year) 
{ 

    $time = strtotime("1 January $year", time()); 
    $day = date('w', $time); 
    $time += ((7*$week)+1-$day)*24*3600; 
    // date on monday for the week 
    $return["Monday"] = date('Y-n-j', $time); 
    $time += 1*24*3600; 
    // date on tuesday for the week 
    $return["Tuesday"] = date('Y-n-j', $time); 
    $time += 1*24*3600; 
    // date on wednesday for the week 
    $return["Wednesday"] = date('Y-n-j', $time); 
    $time += 1*24*3600; 
    // date on thursday for the week 
    $return["Thursday"] = date('Y-n-j', $time); 
    $time += 1*24*3600; 
    // date on friday for the week 
    $return["Friday"] = date('Y-n-j', $time); 
    $time += 1*24*3600; 
    // date on Saturday for the week 
    $return["Saturday"] = date('Y-n-j', $time); 
    $time += 1*24*3600; 
    // date on Sunday for the week 
    $return["Sunday"] = date('Y-n-j', $time); 

    // Returning Array containing all the dates for the days of that specific week of the year. 
    return $return; 
} 
// Lets assume I need dates for week number 7 of the year 2014. 
print_r (getWeekDates(7, 2014)); 
0

вы также можете использовать StrToTime функции. Я как-то сделал это как ниже:

<?php 

    function required_date($week_num, $day) { 
    // get the present week number: exp: 8 
$presentWeek = date("W", strtotime("now")); 

    // get the present day number : exp: 2 
$presentDay = date("w", strtotime("now")); 

    // convert the given day string into number 
$givenDay = date("w", strtotime("{$day}")); 

    // subtract two value of week number 
$week = $week_num - $presentWeek; 

    // subtract two value of day number 
$day = $givenDay - $presentDay; 

    // get the value 
$timestamp = strtotime(" $week week $day day"); 
return $timestamp; 
} 


$timestamp = required_date(14, 'wednesday'); 
echo date('Y-m-d', $timestamp); 

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