2011-02-09 14 views
0

週の最初の日付を取得しますか?
ie。現在の日付から週の1日目を取得するには

if 2011-01-01 then 2011-01-01 
    if 2011-01-06 then 2011-01-01 
    if 2011-01-20 then 2011-01-14 
    if 2011-01-21 then 2011-01-21 

ご迷惑をおかけしてご不便をおかけして申し訳ありません。

私は週の最初の曜日の日付を取得したいだけです。 1または7または14または21または28

+0

あなたは週の最初の曜日として考えますか?それは答えに違いをもたらすでしょう。 –

+0

可能な複製[現在の週の月曜日と金曜日の日付を取得する(PHP)](http://stackoverflow.com/questions/1431631/get-date-for-monday-and-friday-for-the-current- week-php) –

+0

あなたはまだ「最初の曜日」を正しく定義していません。 「1または7または14」はあまり意味がありません。 – deceze

答えて

2

あなたは週の最初の日として月曜日

echo date('Y-m-d',strtotime("last monday", strtotime('tomorrow',strtotime($date)))); 

を考慮すればあなたは週の任意の日にmondayを置き換えることができます。

+1

今日が月曜日の場合は失敗します – zerkms

+0

@zerkms:今すぐ確認できますか? –

+2

私は "明日"の機能を使うほうがよいでしょう: 'echo date( 'Ym-d'、strtotime(" last monday "、strtotime( 'tomorrow'、strtotime($ date))))' ---この場合、別の小切手を追加する必要はありません。 – zerkms

0
$wk_day=date('w'); 
switch ($wk_day) 
{ 
    case 0: $diff = -1;  break; 
    case 1: $diff = 0;   break; 
    default :$diff = $wk_day-1; break; 
} 
echo date('Y-m-d', time()-(86400*$diff)); 
+0

月曜日を最初の日と見なした場合、最初の行を '$ wk_day = '(N');'に変更してください。それに応じてケースを変更する必要があります。 –

0
$current_date =date('Y-m-d'); 

$year = date('Y'); 
$month = date('m'); 
$day = date('d'); 

$first_day = get_week_start($year, $month, $day); 

$weeks_first_day =date('Y-m-d',$first_day); 


    function get_week_start($year, $month, $day) 
    { 
    $timestamp = mktime(0, 0, 0, $month, $day, $year); 
    return $timestamp = mktime(0, 0, 0, $month, date('d', $timestamp)-date('w', $timestamp), $year); 
    } 

あなたは$ weeks_first_dayから最初の日週間を得ることができ、あなたはまた、これまでにどのような形式を変更することができます!ここ

日曜日は最もストレートな方法はから日中('N'ため'w' 0 =日曜日、1 =月曜日)曜日の数を減算することで断然開始日

2

です日付:

$date = strtotime('2011-02-09'); 
$sunday = strtotime('-' . date('w', $date) . ' days', $date); 
$monday = strtotime('-' . (date('N', $date) - 1) . ' days', $date);