2016-01-19 3 views
0

при использовании strtotime WEEK получение года 1970 на неделе 00? Я использую большую функцию, поэтому не могу опубликовать ее здесь.При использовании strtotime(), получающего год 1970?

Я просматриваю недели, получая недели.

for ($weekNumber=00;$weekNumber<=$weekEnd;$weekNumber++) 
{ 
    runTheScript($weekNumber,$month,$weekStart,$weekEnd,$link,$limit,$standardTarget,0,$year); 
} 

мой результат -

недели, начало, конец, дни

49 первого дек 2015 шестому Dec 2015 6
50 7 декабря 2015 13 декабря 2015 7
51 14 декабря 2015 двадцатых 7 декабря 2015
52 21 декабря 2015 27 декабря 2015 7
53 28 декабря 2015 дец тридцать первом 2015 4

следующий

00 1 января 3 января 2016 3
01 4 января 2016 10 января 2016 7
02 11 января 2016 17 января 2016 7
03 18 января 2016 24 января 2016 7
04 двадцать пятый января 2016 31 января 2016 7

как я устанавливаю недель

$weekStart = date('W',strtotime($year . '-' . $month. '-01'));#$_REQUEST['start']; 
$weekEnd = date('W',strtotime($year . '-' . $month. '-'.date('t',strtotime($year . '-' . $month. '-01'))));#$_REQUEST['end']; 
#if ($weekStart > $weekEnd) $weekStart = 1; 

ответ

1

Это происходит потому, что нет недели 0 0. Неделя 53 года прошло 28 декабря (понедельник). Следующая неделя - неделя 01 января 4 (понедельник). Вы должны изменить свою петлю для начала в weekNumber = 01 и изменить «больше или равно» на «больше, чем»

for ($weekNumber=1;$weekNumber<$weekEnd;$weekNumber++) 
+0

избавиться от этого '0'. –

+0

@KarolyHorvath спасибо – plhyhc

+1

Привет @ user5554551 если этот или любой ответ решил ваш вопрос, пожалуйста, рассмотрите [его принятие] (http://meta.stackexchange.com/q/5234/179419), нажав галочку. Это указывает более широкому сообществу, что вы нашли решение и дали некоторую репутацию как самому, так и самому себе. Это не обязательно. – plhyhc

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