2017-05-26 10 views
0

私は今年の年末年始を私が変更できない外部ソースから取得しています。私はその具体的な週の月曜日と日曜日の日付を取得したいと思います。今のところ私は以下のコードを持っていますが、かなり複雑に思えます。特定の日の日付を週番号と年に基づいて取得します

<?php 

// simulate the server data 
$year = date('Y'); 
$week = 19; 

$weekNow = (int) date('W'); 
$weekDiff = $week - $weekNow; // can be positive or negative 
$daysDiff = $weekDiff * 30; 

$dayInDesiredWeek = (int) date('N', strtotime($daysDiff . ' days')); 
if($dayInDesiredWeek !== 1) { 
    $daysDiff += $daysDiff > 0 ? -($dayInDesiredWeek - 1) : $dayInDesiredWeek - 1; 
} 
$monday = date('Y-m-d', strtotime($daysDiff . ' days')); 
$sunday = date('Y-m-d', strtotime($monday . '7 days')); 

私は同じ結果を得るために他の(より単純な)方法がありますか?前もって感謝します。

答えて

0

これまでのところ、私がPHPDocs of DateTime Objectを読んでいたときに私が見た最も簡単な解決策です。

だから手順は以下のとおりです。formatメソッドを実行して、希望の日付を取得し、その後($年間、$弱い、$ offsetFromMonday)

    1. new DateTime()オブジェクト
    2. ランを作成し、それはのparamsとsetISODate方法ですだから、

    、一緒にすべて:

    他の答えは私が正しいものとしてこれをマーキングしていませんし、同様
  • +0

    。 –

    0
    $dt = date("Y-m-d", strtotime("2017W01")); 
    

    使用Carbon

    $dt = new Carbon($dt); 
    
    var_dump($dt->startOfWeek()); 
    var_dump($dt->endOfWeek()); 
    
    関連する問題