2017-01-31 2 views
0

Вот моя функцияPHP & StrToTime головная боль

function thisProduction($week_start, $week_end, $this){ 
echo "<h2>Production > $this week (w/c ".$week_start." - ".$week_end.")</h2>"; 
} 

Вот где я определяю арг

$this_week_start = date('Y-m-d',strtotime('this Monday')); 
$this_week_end = date('Y-m-d',strtotime('this Sunday')); 
$last_week_start = date('Y-m-d',strtotime('last Monday')); 
$last_week_end = date('Y-m-d',strtotime('last Sunday')); 

я называю это будет аргументы как такой

thisProduction($this_week_start, $this_week_end, 'This'); 
thisProduction($last_week_start, $last_week_end, 'Last'); 

Я хочу (используя сегодняшние дата 31 января 2017 г. в качестве примера)

Production > This week (W/C 2017-01-30 - 2017-02-05) 
Production > Last week (W/C 2017-01-23 - 2017-01-29) 

Прошлой ночью это было 'работает', но сегодня я получаю эти результаты

PRODUCTION > THIS WEEK (W/C 2017-02-06 - 2017-02-05) 
PRODUCTION > LAST WEEK (W/C 2017-01-30 - 2017-01-29) 
+0

'этот понедельник' означает' приходящий понедельник ', если текущий день 'не понедельник'. поэтому он работает нормально. –

ответ

2

Лучше использовать monday this week:

$this_week_start = date('Y-m-d',strtotime('monday this week')); 
$this_week_end = date('Y-m-d',strtotime('sunday this week')); 
$last_week_start = date('Y-m-d',strtotime('monday last week')); 
$last_week_end = date('Y-m-d',strtotime('sunday last week')); 

Результат сегодня и вчера:

Продукция> На этой неделе (w/c 2017-01-30 - 2017-02-05)

Производство> На прошлой неделе (w/c 2017-01-23 - 2017-01-29)

+0

Спасибо за предложение. Это то, что я считаю, тоже будет работать. Но я запустил это и получаю те же даты, что и в своем посте. Возможно, это настройка сервера ПРОДУКЦИЯ> ЭТА НЕДЕЛЯ (W/C 2017-02-06 - 2017-02-05) ПРОДУКЦИЯ> ПОСЛЕДНИЕ НЕДЕЛИ (W/C 2017-01-30 - 2017-01-29) –

+0

@Brad Sullivan Убедитесь, что 'date ('Ym-d')' дает '2017-01-31'. Я тестировал его, и он отлично работает. местный и onlinetester – JustOnUnderMillions

+0

Ваш код прекрасен, еще раз спасибо. Я согласен, что он работает на PHPTESTER, как ожидалось, но когда на моем хостинге я все же получаю те же даты, что и в OP. Глава. Стена. –