日付文字列がSQL形式(例:2017-08-05
)で、前の曜日を取得するように変換します。PHPのsql日付文字列から前日の曜日を取得
私は私のような、特定の日付から前の平日を得ることができますstrtotime
方法があることを知っている:
date("Y m d",strtotime("-2 Weekday", strtotime("2017-08-05")));
がこれを行うには良い(きれい)方法はありますか?またはこれはPHPの方法ですか?
日付文字列がSQL形式(例:2017-08-05
)で、前の曜日を取得するように変換します。PHPのsql日付文字列から前日の曜日を取得
私は私のような、特定の日付から前の平日を得ることができますstrtotime
方法があることを知っている:
date("Y m d",strtotime("-2 Weekday", strtotime("2017-08-05")));
がこれを行うには良い(きれい)方法はありますか?またはこれはPHPの方法ですか?
同じことはただ一つの呼び出しstrtotime
にして達成することができます:金曜日または任意の日に月曜日に
date("Y m d", strtotime("2017-08-05 -2 Weekday"))
これは素敵でシンプルですが、 'string'を与えます。オブジェクトの操作を好む場合は、結果を得るために 'DateTime'、' DateTimeImmutable'、および 'DateInterval'を使うべきです。 – localheinz
これを試してください。参考
// create a new instance of DateTimeImmutable
$date = new \DateTimeImmutable('2017-08-05');
// create a one-day interval
$interval = new \DateInterval('P1D');
// subtract the interval, and keep doing that while the day before is not a weekday
do {
$date = $date->sub($interval);
} while (5 < $date->format('N'));
echo $date->format('Y-m-d');
は、参照:
、参照:
Carbon::parse('2017-08-05')->previousWeekday()
を使用するか、またはあなたが
Carbon::parse('2017-08-05')->subWeekday(2)->toDateString()
をsamewayたい場合には、炭素を作成することができます
carbon::parse('2012-08-05')->previousWeekday();
は良い方法この...
平日として? – Andreas
こんにちは@Andreas、日付は任意の日かもしれませんが、出力は前の平日(月曜日金曜日)でなければなりません –
現在のソリューションが動作します、私はちょうど同じメソッドが同じ行に2回発生し、より良い解決策になる –