Мне нужно повторить 1-го и 15-го числа каждого месяца Jan-Dec в PHP. Я знаю, как добавлять дни, используя
$date1 = $_POST['previous_pay_date']; $date2 = date('M j, Y', strtotime($date1 . " + 7 day")); $date3 = date('M j, Y', strtotime($date2 . " + 7 day")); $date4 = date('M j, Y', strtotime($date3 . " + 7 day")); $date1 = $_POST['previous_pay_date']; $date2 = date('M j, Y', strtotime($date1 . " + 14 day")); $date3 = date('M j, Y', strtotime($date2 . " + 14 day")); $date4 = date('M j, Y', strtotime($date3 . " + 14 day")); $date1 = $_POST['previous_pay_date']; $date2 = date('M j, Y', strtotime($date1 . " + 1 month")); $date3 = date('M j, Y', strtotime($date2 . " + 1 month")); $date4 = date('M j, Y', strtotime($date3 . " + 1 month")); $date5 = date('M j, Y', strtotime($date4 . " + 1 month"));
Но теперь мне нужно только 1 и 15 числа месяца
Мое решение, с объектами DateTime: кажется намного проще, не так ли?
<?php header("Content-type: text/plain"); $date = new DateTime("2012-01-01"); echo $date->format("Ymd"), PHP_EOL; $date->modify("+14 days"); echo $date->format("Ymd"), PHP_EOL; while ($date->format("Y") != "2013") { $date->modify("first day of next month"); echo $date->format("Ymd"), PHP_EOL; $date->modify("+14 days"); echo $date->format("Ymd"), PHP_EOL; }