2016-06-26 19 views
-1

具体的な日付がmysqlDATETIMEの場合、Date of MondayDate of Sundayを得るにはどうすればよいですか?PHP指定された日付の月曜日と日曜日の日付を取得する方法を教えてください。

私は、週の最初の日と最後の日の日付を取得しようとしています。

私は日付'2016-06-05 'を'Y-m-d' に入れています。このように試しています。

<?php 
$date = '2016-06-05'; 
echo date("Y-m-d", strtotime('monday this week', strtotime($date))), "\n"; 
echo date("Y-m-d", strtotime('sunday this week', strtotime($date))), "\n"; 
?> 

が、そのは間違っ週間です

2016-06-06 
2016-06-12 

を与え、それは私もこの方法のように試してみました

2016-05-30 
2016-06-05 

を与える必要があります。 PHP 5.3

を使用して

$date = '2016-06-05'; 
echo date("Y-m-d", strtotime('monday', strtotime('this week', strtotime($date)))), "\n"; 
echo date("Y-m-d", strtotime('sunday', strtotime('this week', strtotime($date)))), "\n"; 

OR

$date = '2016-06-05'; 
echo date("Y-m-d", strtotime('monday', strtotime($date))), "\n"; 
echo date("Y-m-d", strtotime('sunday', strtotime($date))), "\n"; 

私はここで何をしないのですか?


UPDATE:

私は、これが予想される出力を与えている、この思い付きました。

function get_monday_sunday($date){ 
$dates_array = array(); 

    if(date('N', strtotime($date)) == 7){ 

    $dates_array['monday'] = date("Y-m-d", strtotime('Monday last week', strtotime($date))); 
    $dates_array['sunday'] = date("Y-m-d", strtotime('Sunday last week', strtotime($date))); 

    }else{ 

    $dates_array['monday'] = date("Y-m-d", strtotime('Monday this week', strtotime($date))); 
    $dates_array['sunday'] = date("Y-m-d", strtotime('Sunday this week', strtotime($date))); 
    } 
return $dates_array; 
} 

$date = '2016-06-05' 
print_r(get_monday_sunday($date)); 

は日が週の最後の日であるとき、その次の週にはやり直すように、すなわち、PHPの週の開始は、私が推測日曜日で見えます。

+0

エコー日付( "Y-m-d"、strtotime( 'sunday先週'、strtotime($ date)))、 "\ n";あなたは実際に日付を持つプログラムを楽しむつもりです。日曜日はPHPの週の最後の日です – splash58

+0

ありがとうございます、私は多くの日付を持っているので、それは任意の日付のために働くのだろうか? – AMB

+0

日曜日が1日であるか最終日がサーバー設定で設定されていないかわかりません。しかし、あなたの現在の環境では、 – splash58

答えて

3

私が作るすべての単一のPHPプロジェクトでは、常にCarbonパッケージが含まれています。これは、DateTimeクラスを拡張し、日付を使った作業をもっと簡単にするとても便利な機能を追加します。

あなたは私の提案を取る場合は、あなたのコードは次のようになります。

$date = Carbon::parse($dateStringFromDb); 
echo $date->startOfWeek()->format('Y-m-d'); // monday 
echo $date->endOfWeek()->format('Y-m-d'); // sunday 

をそして、それは実際にそれで全部です。これは私が「自己コメントコード」と呼ぶものです!

+0

ありがとうございました。私は醜い解決策を考え出しました。 – AMB

関連する問題