5

そのため、現在、日付、時刻、および比較を取得するために Carbon を使用しています。去年のこの日付を取得するのに十分簡単に​​ subYear() を実行できます。ここで、昨年の同じ時刻に正確に同じ日を取得する必要があります。たとえば、4 月の第 2 週の水曜日です。

私は、現在の曜日、たとえば 3 と今年の現在の週を解決する何かを行う必要があると予想し、昨年と同じ値を取得します。

Carbon や他の PHP ツールで既にこれを行っているものがあるかどうかを確認したいと思いましたか? ありがとう

4

4 に答える 4

3

カーボンを使用している他の人は、スプラッシュと同様のソリューションを実行して、次のことを行うことができます。

Carbon::now()->subWeeks(52)

与える2014-05-07 14:11:48

于 2015-05-06T13:13:30.843 に答える
2

Make it easier :)

echo date('Y-m-d (l, W)', strtotime("-52 week"));

Edit: I forgot to write output: :)

2014-05-07 (Wednesday, 19)

UPDATE2:

There is a problem with jeromegamez' code. A year can contain 52 or 53 weeks. Taking 3 January of 2016:

$today = new \DateTime();
$today->setDate ( 2016 , 1 , 3 );

$year  = (int) $today->format('Y');
$week  = (int) $today->format('W'); // Week of the year
$day   = (int) $today->format('w'); // Day of the week (0 = sunday)

$sameDayLastYear = new \DateTime();
$sameDayLastYear->setISODate($year - 1, $week, $day);

echo "Today: ".$today->format('Y-m-d (l, W)').PHP_EOL;
echo "Same week and day last year: ".$sameDayLastYear->format('Y-m-d (l, W)').PHP_EOL;

result is:

Today: 2016-01-03 (Sunday, 53) 
Same week and day last year: 2015-12-27 (Sunday, 52)

only five days instead of years :)

于 2015-05-06T10:09:43.780 に答える