如何从输入的月份中获得第三个月?

时间:2016-04-27 04:35:31

标签: php date datetime

我试图从输入的月份即上个月获得第三个月。如果我将06-2016作为输入,则应该给我03-2016作为结果。我试过了strtotime("-3 Months")。但它给了我距离当前日期只有3个月的时间。

有人可以告诉我如何解决它。

我尝试过:

$month = 06;
$year = 2016;

$d = mktime(0, 0, 0, $month, 1, $year);
$td = date("Y-m-d", $d);
$oldDate = date('Y-m-d', strtotime("-3 Months"));

从现在起约3个月。任何猜测我如何得到预期的结果?

4 个答案:

答案 0 :(得分:1)

strtotime(输入日期。" -3个月")

$month = 06;
$year  = 2016;

$d       = mktime(0, 0, 0, $month, 1, $year);
$td      = date("Y-m-d", $d);
$oldDate = date('Y-m-d', strtotime($td."-3 Months"));

$oldDate_MonthYear = date('m-Y', strtotime($td."-3 Months"));

echo $oldDate;
echo '<br />';
echo $oldDate_MonthYear;

答案 1 :(得分:1)

请在下方使用。您需要使用date("F Y", strtotime( INPUT_DATE ." -3 months"))

$month = 06;
$year = 2016;

$d = mktime(0, 0, 0, $month, 1, $year);
$td = date("Y-m-d", $d);
echo $olddate = date("Y-m-d", strtotime( $td ." -3 months"));
echo $months = date("F Y", strtotime( $td ." -3 months"));

<强>输出:

2016-03-01
March 2016

在线演示:Click Here

答案 2 :(得分:0)

使用基于对象。

$date1 = new DateTime("2016-06-01");
echo $startDate = $date1->modify("-3 month")->format('Y-m-d');

答案 3 :(得分:0)

试试这个,你应该得到理想的结果。

$prev_month_ts = strtotime('2016-06 -3 month');

$prev_month = date('Y-m', $prev_month_ts);

echo $prev_month;