Php 当前日期减去4个月?

Php 当前日期减去4个月?,php,date,Php,Date,我有此格式的日期(YYYYMM): 假设从201203开始,我想减去4个月。我不能做201203-4,因为它是=201199 201203-4应输出201111(2011年11月) 也许我应该把字符串转换成日期,然后用-4个月的时间传递给strotime 有什么建议吗?您可以使用它将字符串转换为UNIX时间戳,以秒为单位time()将为您提供当前的UNIX时间戳。减去它们得到日期的秒数,再除以60*60*24得到日期的天数您可以在PHP中使用: 这将对您有所帮助。strotime()可以做到这一

我有此格式的日期(YYYYMM):

假设从201203开始,我想减去4个月。我不能做
201203-4
,因为它是=
201199

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

也许我应该把字符串转换成日期,然后用-4个月的时间传递给strotime

有什么建议吗?

您可以使用它将字符串转换为UNIX时间戳,以秒为单位
time()
将为您提供当前的UNIX时间戳。减去它们得到日期的秒数,再除以
60*60*24
得到日期的天数

您可以在PHP中使用:

这将对您有所帮助。

strotime()
可以做到这一点,但您需要添加一个月中的某一天来解析日期:

$input = '201203';

$input .= '01';

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

echo date('Ym', $date);
2011年11月的产出:

201111

除了
strotime
版本之外,由于PHP 5.3,您还可以使用和:

EX$da=2014-04-01

如果你想减去6个月,用这个

$date = strtotime($da .' -4 months');
$final=date('Y-m-d', $date);

echo$final

以前的代码不起作用:

$da='2014-08-29';
$date = strtotime($da .' -6 months');
$final=date('Y-m-d', $date);
echo $final;
$date = strtotime($da .' -7 months');
$final=date('Y-m-d', $date);
echo $final;
二月不见了

$date = '2016-09-01 00:00:00.000000';

$date2 = date("Y-m-d H:i:s.u", strtotime($date." -4 months"));

echo $date2; 

运行此代码时,您将获得2016-05-01 00:00:00.000000

<?php
$current_date = date("Y-m-d");

$final_date = date("Y-m-d", strtotime($current_date." -4 months"));

echo $final_date;

看看函数explode和mktime。@OZ\uz,这里会有什么帮助explode?只缺少2月29日
$da='2014-08-29';
$date = strtotime($da .' -6 months');
$final=date('Y-m-d', $date);
echo $final;
$date = strtotime($da .' -7 months');
$final=date('Y-m-d', $date);
echo $final;
$date = '2016-09-01 00:00:00.000000';

$date2 = date("Y-m-d H:i:s.u", strtotime($date." -4 months"));

echo $date2; 
<?php
$current_date = date("Y-m-d");

$final_date = date("Y-m-d", strtotime($current_date." -4 months"));

echo $final_date;