2011-09-07 9 views
13

ウィキペディアを繰り返すことrepeating intervalISO 8601例の例を示します:ISO 8601の間隔

R5/2008-03-01T13:00:00Z/P1Y2M10DT2H30M 

これは、これが何を意味するのかである:

  • R5は、スラッシュの後の間隔が5回繰り返されることを意味し。
  • 2008-03-01T13:00:00Zは、この指定されたdatetimeで間隔が始まることを意味します。
  • P1Y2M10DT2H30M

私の問題があることである間隔は

  • 1年間持続する
  • 2ヶ月
  • 10日
  • 2時間
  • 30分
  • ことを意味I何がここで繰り返されているのか正確にはわからない。間隔が終了した直後に繰り返し が発生しますか?毎週月曜日が13:00から14:00に行われると指定することはできますか?

+0

特定の開始日または終了日がない「間隔」については、ISO 8601に基づいてフォーマットを作成しました。これらの[JavaScript](https://github.com/smhg/date-frequency-js)と[PHP](https://github.com/smhg/date-frequency-php)ライブラリで使用されています。あなたの例の「毎週月曜日の13:00:00」は「F1D/WT13H0M0S」と書かれています。 1時間間隔(持続時間)は独立して保存することができます。 – smhg

+0

@smhgエクステンションの概要を記載したドキュメントがありますか?もしそうなら、私は本当にそれを読んでみたい、そうでなければ、それを作ろう! – kzh

+1

私はMu Mindの答えに基づいてRFC 5545の[RRULE](http://tools.ietf.org/html/rfc5545#section-3.3.10)(iCalendarの)を読んできました。私のフォーマットは、より高度な操作(例えば、奇数週10:00:00の毎日のF(奇数)W/ET10H0M0S)のための外部フィルタ機能に依存する。 RRULEではすべてのインラインを指定できますが、人間が読むことはできません(rfcの知識なし)。私のユースケースでは、それは私が作ろうとしているトレードオフです。だから私はこの既存の標準を使って両方のライブラリを書き直します。 – smhg

答えて

7

標準自体は明確ではありませんが、ここでの唯一の明白な解釈は、間隔が連続して繰り返されることです。だから、この定期的な間隔:

R2/2008-03-01T13:00:00Z/P1Y2M10DT2H30M 

は、これらの非経常間隔と同等になります。

2008-03-01T13:00:00Z/P1Y2M10DT2H30M 
2009-05-01T15:30:00Z/P1Y2M10DT2H30M 

(注意:私の読書は、繰り返し回数が最初に出現などがないことである)

ISO 8601の中にある「毎週月曜日の13:00から14:00まで」を表現する方法はありませんが、VEVENTのiCalendarフォーマットでは当然です。 (ISO 8601の中でそれを完全に行うことができれば、さらなる機能リクエストが必要になります)

+0

「R2/P1M/2008-03-01T13:00:00Z」(期間と終了日)はどのように解釈しますか? 「R2/2008-02-01T13:00:00Z/P1M」と同じだと思いますか? – Melanie

+0

Nope。それは、その日の繰り返し終わりが、過去に無限に続くことを意味します。 –

+0

'[n]'の数が指定されているので、時間の無限に戻ることはないと解釈します。 –

関連する問題