Итак, в PHP я пытаюсь вернуть значение даты за прошлый год, основываясь на том же дне недели.Пример: (понедельник) 2011-12-19 введенные данные должны возвращаться (понедельник) 2010-12-20.
Я просто делал это просто на -364, но тогда это было неудачным в високосные годы.Я натолкнулся на другую функцию:
$newDate = $_POST['date'];
$newDate = strtotime($newDate);
$oldDate = strtotime('-1 year',$newDate);
$newDayOfWeek = date('w',$oldDate);
$oldDayOfWeek = date('w',$newDate);
$dayDiff = $oldDayOfWeek-$newDayOfWeek;
$oldDate = strtotime("$dayDiff days",$oldDate);
echo 'LAST YEAR DAY OF WEEK DATE = ' . date('Ymd', $oldDate);
, однако она не работает, когда вы пытаетесь ввести дату воскресенья, так как она делает 0 (воскресенье) минус 6 (суббота даты прошлого года) и возвращается сзначение Т-6.Ввод IE 2011-12-25 дает вам 2010-12-19 вместо 2011-12-26.
Я немного озадачен тем, что нашел в php хорошее решение, которое будет работать в течение високосных лет и, очевидно, всехдни недели.
Есть предложения?
Спасибо!