Цикл по конкретным датам (крест месяцам) в PHP
Я работаю над проектом, который создает отчеты еженедельно, поэтому, если сегодняшняя дата - "2013/09/05", код должен выяснить, какой была дата семь дней назад, то есть "2013/08/29" с учетом того, что некоторые месяцы длиннее других.
а затем я хочу запустить даты в базе данных в поисках совпадений...
это то, что я сделал до сих пор, но это не работает.
// Start date
$text = explode('/', $date); //2013/09/05
$day = $text[2];
$month = $text[1];
$year = $text[0];
$past_day = $day - 7; //-2
// determine if $past_day is negative
if ($past_day < 0){
$month = $month - 1; //08
$var = $day - 0; //2
$num = cal_days_in_month(CAL_GREGORIAN, $month, $year);
$var = ($num - $var); // 29
$start_date = $year."/".$month."/".$var;
}else{
$start_date = $year."/".$month."/".$past_day;
}
Большое спасибо, ребята!
1 ответ
Решение
Попробуй это:)
$date = "2013/09/05";
// Start date
$text = explode('/', $date); //2013/09/05
$day = $text[2];
$month = $text[1];
$year = $text[0];
$past_day = $day - 7; //-2
// determine if $past_day is negative
if ($past_day < 0){
$month = $month - 1; //08
$var = ($past_day)*-1; //2
$num = cal_days_in_month(CAL_GREGORIAN, $month, $year);
$var = ($num - $var); // 29
$start_date = $year."/".$month."/".$var;
}else{
$start_date = $year."/".$month."/".$past_day;
}