Tak więc, w PHP próbuję zwrócić wartość daty za ostatni rok w oparciu o ten sam dzień tygodnia. EX: (poniedziałek) 2011-12-19 wprowadzony powinien wrócić (poniedziałek) 2010-12-20.php - znajdź datę tego samego dnia tygodnia za ostatni rok
Po prostu robiłem to po prostu przez -364, ale to się nie udało w latach przestępnych. Natknąłem się na inną funkcję:
$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);
jednak, że się niepowodzeniem podczas próby wejścia datę niedzielę, jak to robi się 0 (niedziela) minus 6 (sobota dzień ostatniego roku), i wraca z wartością T-6. Wpisanie IE 2011-12-25 spowoduje wyświetlenie 2010-12-19 zamiast 2011-12-26.
Jestem trochę zakłopotany, aby znaleźć dobre rozwiązanie w php, które będzie działać przez lata przestępne i oczywiście przez wszystkie dni tygodnia.
Wszelkie sugestie?
Dzięki!
To dobrze, ale co roku przestępnym? – Shea
@andrewjackson Działa dobrze. "2012-12-25" oznacza "2011-12-27". – lonesomeday