0

1年前と1日前の日付をphpに計算させようとしています。私はこれを持っています:

$date = date(strtotime('-366 days'));
$oneyear_oneday = date("Y-m-d H:i:s", $date); 

$date = date(strtotime('-1 year'));
$oneyear = date("Y-m-d H:i:s", $date);

ただし、うるう年であるため、$oneyear と $oneyear_oneday の両方で同じ出力が得られます。これを正しく計算する方法を知っている人はいますか?

つまり、2012 年 8 月 15 日の午後 3 時であれば、出力を 2011 年 8 月 15 日の午後 3 時にしたい

4

5 に答える 5

3

PHP5.3で、

   $date = new DateTime();
   $interval = new DateInterval("P1Y");
   $newdate = $date->sub($interval);
于 2012-08-31T14:02:07.167 に答える
0

まず、1年を引きます。次に、結果から 1 日を引きます。

$date = strtotime('-1 day', strtotime('-1 year'));
$oneyear_oneday = date("Y-m-d H:i:s", $date); 
于 2012-08-31T14:10:53.963 に答える
0

mktime()を使用してみることができます ...

于 2012-08-31T13:59:05.703 に答える
0

どちらの計算も正しいです。ただし、1 年前の同じ日付を取得したい場合は、単純に「-1 year」を使用する必要があります。文字列「-366 日」はうるう年でのみ正しいです。

于 2012-08-31T14:00:15.557 に答える
0
$date = strtotime('2010-01-01 -1 year');
echo date('Y-m-d', $date); 

出力ストリームは次のようになります。

2009-01-01

詳細については、このリンクにアクセスしてください

于 2012-08-31T14:03:38.340 に答える