2013-09-03 1 views
-4

Я не могу определить код, чтобы получить дату с понедельника в зависимости от номера недели этого года.Получить дату с понедельника в зависимости от номера недели

Может кто-нибудь помочь мне с этим кодом?

спасибо.

+1

Уточните, что вам нужно. Покажите код, который вы уже пробовали. –

+1

Можете ли вы отредактировать вопрос и дать понять, что именно вы пытаетесь достичь? Пожалуйста, также включите в него код и ожидаемый результат. –

ответ

1

Это обеспечит понедельник определенной недели в этом году:

$thisYear = date('Y'); 
$weekNum = 40; 

$date = date('Y-m-d', strtotime("$thisYear-W$weekNum-1")); // Outputs 2013-09-30 
+1

Да, мне нравится это больше, чем мое. Гибкость strtotime поражает меня каждый раз, когда я вижу, что она используется по-новому. – jboneca

+0

Я не могу вспомнить, где я его нашел, но это пригодится, когда вы пытаетесь сравнить информацию с недели Mon-Sun этого года до той же недели Mon-Sun в прошлом году. – aynber

+0

Если вы используете этот код, будьте осторожны с номером недели, он должен быть двухзначным; всегда добавьте 0, если номер недели ниже 10. –

-1

Я это заложить вокруг (я не уверен, если я или кто-то другой был автором), но дать ему попробовать:

$week = 34; //Enter your week here. 

    $week = mktime(0, 0, 0, 1, 1, 2013) + ($week * 7 * 24 * 60 * 60); 

    $monday = $week - 86400 * (date('N', $week) - 1); 
    $monday = date('Y-m-d', $monday); 

    echo $monday; 
+0

Это не работает, неделя = 40 возвращает '2013-10-07', но она должна' 2013-09-30'. –

1

DateTime Используйте класс:

$dt = new DateTime; 
$dt->setISODate($year, $week); 
echo $dt->format('Y-m-d'); 

demo