当前日期减去4个月?

13 php date

我有这种格式的日期(YYYYMM):

201201  // Gen, 2012
201202  // Feb, 2012
201203  // ecc
Run Code Online (Sandbox Code Playgroud)

让我们说从201203年开始我想减去4个月.我不能这样做,201203 - 4因为它是=201199

201203 - 4应该输出201111(2011年11月)

也许我应该将我的字符串转换为日期,然后将其传递给strtotime 4个月?

有什么建议?

pea*_*ing 32

你可以strtotime在PHP中使用:

$date = strtotime('2012-05-01 -4 months');
Run Code Online (Sandbox Code Playgroud)

文章将帮助您.


MrC*_*ode 8

strtotime() 可以这样做,但你需要添加一个月中的一天来解析日期:

$input = '201203';

$input .= '01';

$date = strtotime($input .' -4 months');

echo date('Ym', $date);
Run Code Online (Sandbox Code Playgroud)

2011年11月的产出:

201111
Run Code Online (Sandbox Code Playgroud)


Jon*_*Jon 8

除了strtotime版本之外,从PHP 5.3开始,您还可以使用DateTimeDateInterval:

$date = DateTime::createFromFormat("Ym", "201201");
$interval = new DateInterval("P4M"); // 4 months
$fourMonthsEarlier = $date->sub($interval);
echo $fourMonthsEarlier->format("Ym");
Run Code Online (Sandbox Code Playgroud)