37

したがって、今日が 2010 年 4 月 12 日である場合、2009 年 10 月 1 日を返す必要があります。

私がグーグルで調べたいくつかの可能な解決策は、過度に複雑に思えます。何か提案はありますか?

4

4 に答える 4

78

うーん、多分このようなものです。

echo date("F 1, Y", strtotime("-6 months"));

編集;

カスタムの日付を指定したい場合は;

echo date("F, 1 Y", strtotime("-6 months", strtotime("Feb 2, 2010")));
于 2010-04-12T21:16:17.240 に答える
11

少しハックですが、動作します:

<?php

$date = new DateTime("-6 months");
$date->modify("-" . ($date->format('j')-1) . " days");
echo $date->format('j, F Y');

?>
于 2010-04-12T21:13:51.503 に答える
9

と の組み合わせを使用しmktimeますdate

$date_half_a_year_ago = mktime(0, 0, 0, date('n')-6, 1, date('y'))

今日ではなく、特定の日付に関連する新しい日付を作成するにはdate、2 番目のパラメーターを使用して呼び出します

$given_timestamp = getSomeDate();
$date_half_a_year_ago = mktime(0, 0, 0, date('n', $given_timestamp)-6, 1, date('y', $given_timestamp))

フォーマットして出力するには、単純にdateもう一度使用します。

echo date('F j, Y', $date_half_a_year_ago);
于 2010-04-12T21:13:02.017 に答える