web-dev-qa-db-ja.com

PHP日付( 'm-Y')で日付形式から1か月を引く

日付から1か月を差し引こうとしています。

$today = date('m-Y');

これにより、2016年8月から

07-2016を取得するために月を引くにはどうすればよいですか?

19
Grant
 <?php 
  echo $newdate = date("m-Y", strtotime("-1 months"));

出力

07-2016
38
user1234

警告!上記の例は、月末に呼び出した場合は機能しません。

<?php
$now = mktime(0, 0, 0, 10, 31, 2017);
echo date("m-Y", $now)."\n";
echo date("m-Y", strtotime("-1 months", $now))."\n";

出力されます:

10-2017
10-2017

次の例では、同じ結果が生成されます。

$date = new DateTime('2017-10-31 00:00:00');
echo $date->format('m-Y')."\n";
$date->modify('-1 month');
echo $date->format('m-Y')."\n";

問題を解決する方法の多くは別のスレッドで見つけることができます: PHP DateTime :: modify加算と減算の月

9
Alexey Kosov

PHPバージョンに応じて、DateTimeオブジェクトを使用できます(正しく覚えていればPHP 5.2で紹介):

<?php
$today = new DateTime(); // This will create a DateTime object with the current date
$today->modify('-1 month');

別の日付をコンストラクターに渡すことができますが、現在の日付である必要はありません。詳細: http://php.net/manual/en/datetime.modify.php

3
Jakub Krawczyk

これを試して、

$today = date('m-Y');
$newdate = date('m-Y', strtotime('-1 months', strtotime($today))); 
echo $newdate;
3
Vinod VT
if(date("d") > 28){
    $date = date("Y-m", strtotime("-".$loop." months -2 Day"));
} else {
    $date = date("Y-m", strtotime("-".$loop." months"));
}
0
Anilbk
$lastMonth = date('Y-m', strtotime('-1 MONTH'));
0
Brennan James

これを試して、

$effectiveDate = date('2018-01'); <br> 
echo 'Date'.$effectiveDate;<br>
$effectiveDate = date('m-y', strtotime($effectiveDate.'+-1 months'));<br>
echo 'Date'.$effectiveDate;
0
ChinmayW

最初に日付形式m-YをY-mに変更

    $date = $_POST('date'); // Post month
    or
    $date = date('m-Y'); // currrent month

    $date_txt = date_create_from_format('m-Y', $date);
    $change_format = date_format($date_txt, 'Y-m');

このコードから特定の日付までの1か月を差し引いたもの

    $final_date = new DateTime($change_format);
    $final_date->modify('-1 month');
    $output = $final_date->format('m-Y');
0
Mani