2016-12-16 17 views
1

私は日付の文字列が '2016/10/10'の形式です。私は昨日持ち出す機能を作ろうとしていますが、私はそれを昨日ごとに動作させたい、そして手作業でしばらくすると、それはかなり複雑になり、2月29日に検出されないことに気づきました。昨日の日付の文字列から

同じ形式で昨日から昨日の日付に持っていくのがベストプラクティスですか?私はほとんど自動化された方法が必要であると確信しています。

$date = '2016/10/10'; 
$newDate = goYesterday($date); 

p.s .:タイムスタンプではありません。Carbonから離れるべきですが、タイムスタンプではありません。私はわかりません。

答えて

1

関数strtotimeを使用できます。関数strtotimeは、最初のパラメータとして「一般文字列」を取得し、2番目のパラメータは相対日付です。私はすでにフォーマットにdate機能を使用

$date = '2016/10/10'; 
$newDate = date('Y/m/d', strtotime('yesterday', strtotime($date))); 
echo $newDate; 

注意。

+0

作品のオブジェクト指向の方法を使用することをお勧め。ありがとうたくさん – senty

+0

私は助けることができてうれしい!回答を受け入れることを忘れないでください:) – Dekel

+0

こんにちは。私はすぐに質問があります。昨日書いているのではなく、7日を減算したいのですか?他のユースケースを少しでも拡張できるのであれば、私と他の誰かにとって役に立ちます。事前に多くのお礼ありがとうございます – senty

0

魔法のように

$date = '2016/10/10'; 
$dateObj = DateTime::createFromFormat('Y/m/d', $date); 
$interval = new DateInterval('P1D'); 
$dateObj->sub($interval); 
$newDate = $dateObj->format('Y/m/d'); 
+1

手続き型ではなくオブジェクト指向型を使用する方が良い理由は何ですか?あなたは主張をして、それを何かに基づいていない。 –

関連する問題