現在の週の指定された平日の完全な日付(「月」など)を返す信頼できる方法を探しています。
今日は2012年6月13日水曜日なので、<?php echo date("Y-m-d", strtotime('Mon this week')); ?>
結果が出ると予想していまし2012-06-11
たが、代わりにphpは今週を来週の意味として2012-06-18
解釈するかのように戻ります。なぜこの振る舞いをし、私は何をすべきですか?
ありがとう。
-ジェフ
date( 'Y-m-d', strtotime( 'last Monday', strtotime( 'Sunday' ) ) );
これは、次の日曜日の前の月曜日を検索します。
ドキュメントによると、php相対日付形式。
次にMonday this week
、最初にに進み、next Monday
次にの相対テキストを処理しますthis week
。
dayname:現在の日でない限り、この名前の次の日に移動し、それ以降は進みません。つまり、現在の日付が6月11日の場合は、6月11日strtotime('Monday this week')
を返しますが、現在の日付が6月13日の場合は、strtotime('Monday this week')
6月19日を返します。
私はこれがあなたの問題の解決策だと思います:
$monday_date = date("Y-m-d", mktime(0,0,0, date("m"), date("j")-(date("w")+1), date("Y")));