0

201308 (2013 年 8 月) などの日付文字列に月を追加し、同じ形式、つまり 201408 (2014 年 8 月) で返すにはどうすればよいですか? 私はもう試した:

$dateToDflt = "201308";
$dateToDflt = strtotime(date("Ym", strtotime($dateToDflt)) . " +12 months");
$dateToDflt = date("Ym",$dateToDflt);

これは、今日の日付より 12 か月前に戻るだけなので、時刻と日付の形式が混乱していると思います

4

1 に答える 1

1
$date = DateTime::createFromFormat('Ym', $dateToDflt);
$date->modify('+12 months')
$dateToDflt = $date->format('Ym');

または、キャストを含む単純な文字列操作

$dateToDflt[3] = $dateToDflt[3] + 1;

もちろん、2010 年から 2018 年までしか機能しません。2098 年までの範囲に拡張するには、これを追加してください ;)

$dateToDflt[2] += (int) ($dateToDflt[3] == 0);

http://codepad.org/43LACMoZ ;)

于 2013-01-15T11:06:47.953 に答える