Я пытаюсь получить период времени с датой, такой как сегодня "2011-11-24", и я хочу получить 7 дней до сегодняшнего дня:
"2011-11-24"
Значения будут:
"2011-11-23", "2011-11-22", "2011-11-21", "2011-11-20", "2011-11-19", "2011-11-18", "2011-11-17"
Если я правильно вас читаю, вы хотите каждый из предыдущих семи дней. Примерно так будет работать:
$today = time(); for( $daysAgo = 1; $daysAgo <= 7; $daysAgo++ ) { echo date( 'Y-m-d', strtotime( "-$daysAgo days", $today ) ) . '<br />'; }
Используя новые классы даты / времени, вы можете сделать следующее:
$p = new DatePeriod( new DateTime('now'), DateInterval::createFromDateString('-1 day'), 7, DatePeriod::EXCLUDE_START_DATE ); foreach ($p as $t) { echo $t->format('Y-m-d') . '<br />'; }
См. DatePeriod, DateTime и DateInterval.
DatePeriod
DateTime
DateInterval
$timestamp = strtotime('YYYY-MM-DD - 1 week');
http://php.net/strtotime
$timestamp = time() - (7*60*60*24); echo date('Y-m-d',$timestamp);