如何知道年月日期前三个月

How to know three months before a yearmonth date

从 php 函数得到的只有年和月相加的日期。假设它是 201403 或 201412。如何通过 php 使用相同的格式获得该日期之前的 03 个月,即第一个为 201312,第二个为 201409?

由于该日期格式不标准,您需要使用 DateTime::createFromFormat() 来解析日期。然后你可以使用 DateTime::modify() 得到你想要的日期。

$date = DateTime::createFromFormat('Ym', '201403');
$date->modify('first day of this month')->modify('-3 months');
echo $date->format('Ym');

Demo

创建一个真正的日期作为一个月的第一天;进行 3 个月的调整,return 新日期的格式仅为年和月

$yearMonth = '201403';
$date = new DateTime($yearMonth . '01');
$date->sub(new DateInterval('P3M'));
echo $date->format('Ym');