0

私は私ができることを知っています

$threemonthsago = date("Y-m-d", strtotime("-3 month"));
echo "$threemonthsago";

ただし、3か月前ではなく3.5か月前に取得したいです。だから私はやろうとした

$threemonthsago = date("Y-m-d", strtotime("-3.5 month"));
echo "$threemonthsago";

しかし、それは私に正しい日付を与えていないようです.9月のように、現在の4月以来そうあるべきではありません.

4

1 に答える 1

2

小数点はstrtotime()、認識できる有効な形式ではないため、スローされます。あなたが抱えている本当の問題は、半月とは正確には何ですか?2月を横断すると、本当に危険です。

これは、使用する方がいくらか簡単です。月の半分を正確に指定するDateTime()と、次のようになります。DateInterval()

$date = new DateTime();
$new_date = $date->sub(new DateInterval('P3M15D'));
echo $new_date->format('Y-m-d');

デモ

于 2014-04-30T16:20:37.523 に答える