回答を検索しましたが、同様の質問がオンラインで回答されているのを見つけましたが、それらを自分の目的に使用することができませんでした. 私は助けが必要です。
定期的なイベントをサポートするカレンダーを作成しています。ほぼ完成ですが、最後のピースが一番難しいです。Y か月ごとの N 番目の X に発生するイベントをサポートできる必要があります。ここで、X は特定の曜日、Y は月数です。
「Y か月ごと」の部分 (以下のクエリ セグメントの最後の行から 2 行目) は既に把握しています。「N番目の平日」を取得するだけです。
これを見事に解決すると主張する誰かが作成した PHP スクリプトを見つけたので、それを使用する予定でしたが、日付を取得する曜日を指定する値がdb レコードであり、それらをメイン クエリの外で使用することはできません。
クエリの一部を次に示します。これにより、私がどこに向かっているのかがわかります。
WHEN event_recurring_pattern_type = 'monthly' AND event_recurring_monthly_type = 'dayxofeveryxmonths' THEN
MOD(PERIOD_DIFF(CONCAT(event_date_year,event_date_month), CONCAT('$date_year','$date_month')), event_recurring_monthly_dayofeveryxmonths) = 0
AND event_recurring_monthly_dayx = '$date_day'
WHEN event_recurring_pattern_type = 'monthly' AND event_recurring_monthly_type = 'thexweekdayofeveryxmonths' THEN
MOD(PERIOD_DIFF(CONCAT(event_date_year,event_date_month), CONCAT('$date_year','$date_month')), event_recurring_monthly_dayofeveryxmonths) = 0
AND '$date_timestamp' = {the date of the Nth weekday of $date_month}
そこの最後の行では、カレンダーの現在の出力日 (一度に 1 日カレンダーを作成するため) と、出力プロセス中の月の N 番目の平日の日付を比較する必要があります。それらが一致すると、そのイベントがカレンダーに出力されます。
$date_timestamp は、この場合の「YYYY-MM-DD」形式の現在の出力日付であるため、日付を取得する N 番目の平日もその形式にする必要があります。
十分な情報を提供していない場合、または他の場所で適切に回答されている場合は、お知らせください。以前の質問の 1 つが「クローズ」されました。これは、質問に関連する情報を十分に提供し、問題を解決する完全に受け入れられる回答を受け取ったにもかかわらず、漠然としすぎている、または十分な情報を提供していないと考える人がいたためです。否定的なアクションを実行する前に、必要に応じて質問を改善する機会を与えてください。
前もって感謝します。
そうそう、これをさらに作成して、指定された月の LAST 指定された曜日をオプションで取得できれば、さらに良いでしょう。PHP スクリプトはそれを行いましたが、先ほども述べたように、今回は PHP でこれを行うことはできません。