私はこの形式(YYYYMM)の日付を持っています:
201201 // Gen, 2012
201202 // Feb, 2012
201203 // ecc
たとえば、201203 から 4 か月減算したいとします。201203 - 4
=だからできない201199
201203 - 4
出力する必要があります201111
(2011 年 11 月)
たぶん、文字列を日付に変換してから、-4 か月で strtotime に渡す必要がありますか?
提案はありますか?
strtotime()
それを行うことができますが、日付を解析するには、月の日を追加する必要があります。
$input = '201203';
$input .= '01';
$date = strtotime($input .' -4 months');
echo date('Ym', $date);
2011 年 11 月のアウトプット:
201111
バージョンとは別に、PHP 5.3 以降ではandstrtotime
も使用できます。DateTime
DateInterval
$date = DateTime::createFromFormat("Ym", "201201");
$interval = new DateInterval("P4M"); // 4 months
$fourMonthsEarlier = $date->sub($interval);
echo $fourMonthsEarlier->format("Ym");
EXの場合 $da=2014-04-01
6か月をマイナスしたい場合は、これを使用してください..
$date = strtotime($da .' -4 months');
$final=date('Y-m-d', $date);
エコー $final;
strtotimeを使用して、文字列を秒単位の UNIX タイムスタンプに変換できます。time()
現在の UNIX タイムスタンプが表示されます。それらを引いて秒単位で日付を取得し、で割って日単位で60*60*24
取得します
以前のコードが機能しない:
$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;
2月が行方不明!