如何回应PHP中的第1个月和第15个月

时间:2012-11-26 18:50:24

标签: php date

我需要在1月1日至12月的PHP中回应1月1日和15日。我知道如何使用

添加天数
$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个

1 个答案:

答案 0 :(得分:1)

我的解决方案,使用DateTime对象:看起来更简单,不是吗?

<?php

header("Content-type: text/plain");

$date = new DateTime("2012-01-01");
echo $date->format("Y-m-d"), PHP_EOL;
$date->modify("+14 days");
echo $date->format("Y-m-d"), PHP_EOL;

while ($date->format("Y") != "2013") {
    $date->modify("first day of next month");
    echo $date->format("Y-m-d"), PHP_EOL;
    $date->modify("+14 days");
    echo $date->format("Y-m-d"), PHP_EOL;
}