get_weekstartend()


WordPressのget_weekstartend()関数は、指定された日付の週の開始日と終了日を取得するために使用されます。この関数は、日付の計算やカレンダー関連の機能を実装する際に役立ちます。

構文

get_weekstartend( string $start_of_week, string $current_date );

引数の説明:

  • $start_of_week(string) — 週の開始日を指定します。デフォルトは0(日曜日)です。1(月曜日)から6(土曜日)までの値を指定できます。
  • $current_date(string) — 基準となる日付を指定します。この日付を含む週の開始日と終了日が計算されます。

例1: 現在の週の開始日と終了日を取得

この例では、現在の日付を基準に週の開始日と終了日を取得します。

$week = get_weekstartend( '0', date('Y-m-d') ); print_r($week);

例2: 月曜日を週の開始日として取得

週の開始日を月曜日に設定し、指定した日付の週の開始日と終了日を取得します。

$week = get_weekstartend( '1', '2023-10-15' ); print_r($week);

例3: 特定の日付の週の範囲を表示

指定した日付の週の開始日と終了日をフォーマットして表示します。

$week = get_weekstartend( '0', '2023-10-20' ); echo '週の開始日: ' . date('Y-m-d', $week['start']) . '、週の終了日: ' . date('Y-m-d', $week['end']);

例4: 週の開始日を土曜日に設定

週の開始日を土曜日に設定し、指定した日付の週の範囲を取得します。

$week = get_weekstartend( '6', '2023-10-25' ); print_r($week);

例5: 週の範囲をカスタムフォーマットで表示

週の開始日と終了日をカスタムフォーマットで表示します。

$week = get_weekstartend( '0', '2023-10-30' ); echo '開始: ' . date('d M', $week['start']) . ' - 終了: ' . date('d M', $week['end']);

例6: 複数の日付で週の範囲を取得

複数の日付に対して週の範囲を取得し、結果を配列として表示します。

$dates = ['2023-10-01', '2023-10-10', '2023-10-20']; foreach ($dates as $date) { $week = get_weekstartend('0', $date); echo '日付: ' . $date . '、週の範囲: ' . date('Y-m-d', $week['start']) . ' から ' . date('Y-m-d', $week['end']) . '<br>'; }

例7: 週の範囲を利用したイベントフィルタリング

指定した週の範囲内に発生するイベントをフィルタリングします。

$week = get_weekstartend('0', '2023-10-15'); $events = get_posts(['post_type' => 'event', 'date_query' => ['after' => date('Y-m-d', $week['start']), 'before' => date('Y-m-d', $week['end'])]]); foreach ($events as $event) { echo $event->post_title . '<br>'; }

例8: 週の範囲を利用したカスタムクエリ

週の範囲を利用してカスタムクエリを作成し、特定の期間内の投稿を取得します。

$week = get_weekstartend('0', '2023-10-25'); $args = ['date_query' => ['after' => date('Y-m-d', $week['start']), 'before' => date('Y-m-d', $week['end'])]]; $query = new WP_Query($args); while ($query->have_posts()) { $query->the_post(); the_title(); }

注意点

  • get_weekstartend()は、タイムゾーンの設定に影響を受けます。正確な結果を得るためには、タイムゾーン設定を確認してください。
  • 日付のフォーマットが正しくない場合、関数が期待通りに動作しないことがあります。

関連機能: