テンプレート:Checkdate
「yyyy-m」「yyyy-mm」「Month yyyy」形式の日付を「yyyy年m月」形式に変換します。「yyyy年m月」形式の日付を指定された場合にはそのまま返します。
基本機能
編集- 「Month yyyy」形式は、「yyyy年m月」形式に変換します。
- 例: {{Checkdate|December 2024}} →
- 「yyyy年m月」形式は、変換せずそのまま返します。
- 例: {{Checkdate|2024年1月}} → 2024年1月
- 例: {{Checkdate|2024年12月}} → 2024年12月
- 「月」の文字より後に日や時刻などがある場合は取り除きます。
- 例: {{Checkdate|2024年12月3日}} → 2024年12月
- 「yyyy年mm月」「yyyy-m」「yyyy-mm」形式は、「yyyy年m月」形式に変換します。
- 例: {{Checkdate|2024年01月}} → 2024年1月
- 例: {{Checkdate|2024-1}} → 2024年1月
- 例: {{Checkdate|2024-01}} → 2024年1月
- 日付を認識できない場合、または何も指定されない場合には、オプションの defaultdateパラメータ が指定されている場合を除き、何も返しません。
- 例: {{Checkdate|あいうえお}} →
- 例: {{Checkdate|}} →
日本語版で追加されたパラメータ
編集- defaultdate
- 日付を認識できない場合、または何も指定されない場合の既定値を指定できます。先頭の3文字が「エラー」だった場合に限り、{{Error}}を呼び出します。
英語版との相違点
編集- このテンプレートの内部で使用している {{#time}}の仕様上、{{#time}}は誤まった形式の日付を誤認識する場合があり、その問題を回避するため、英語版ではサポートされている「Month d yyyy」形式や「d Month yyyy」形式(英語版形式で日まで含まれている場合)は、日本語版ではサポートしていません。
- 同じ問題により、2000年以後2099年以前の日付のみを対象としています。
内部テンプレート
編集- {{Checkdate/ja}}
- {{Checkdate/en}}
- {{Checkdate/zh}}
備考
編集- 「yyyy年m月」形式(「月」の文字が使用されている場合)においては、正しくない日付を指定された場合でも基本的にはそのまま返します。
- 「月」の文字が使用されているのに「年」の文字の代わりに「-」(ハイフン)等が使用されている場合にも「年」には変換しません。
- 「yyyy年m月」形式でない場合において、当テンプレートが回避している{{#time}}の問題は次のとおりです。
- 「yyyy-mm」形式で年と月の間にハイフンが無い場合に、エラーにならず現在の日付が返される。{{Checkdate}}では何も返しません。
- 例: {{#time:Y年F|200901}} → 2024年12月
- 数字でない文字が含まれている年を指定した場合に、エラーにならず現在の年が返され月は不定になる。{{Checkdate}}では何も返しません。
- 例: {{#time:Y年F|20XX}} → 2024年10月
- 「Month yyyy」形式で月と年の間に「,」(カンマ)が含まれていると、エラーにならず月は正しく返されるが、年は指定した年ではなく現在の年が返される(年の値によっては正しく返される場合もあります)。{{Checkdate}}では何も返しません。
- 例: {{#time:Y年F|September, 2008}} → 2024年9月
- 日を指定しない場合に、小の月の月末には翌月に繰り上がる。この問題を回避するため、日が指定されていても当テンプレートの内部では全て「1日」固定として扱っています。
- 例: {{#time:Y年F|2024-06}} → 毎月30日までは正常ですが、大の月の31日になると翌月に繰り上がります。
- 例: {{#time:Y年F|2024-02}} → 毎月28日(閏年の場合は29日)までは正常ですが、その後は3月に繰り上がります。