MediaWikiの{{#time}}構文で扱える日付の範囲
もう1年以上もParserFunctionsでtrancate/floor/ceilが使えるようになってるの知らなかった……いくつか書き直せるテンプレートがありそうな感じ
2009-10-06 08:52:36[[Category:日付計算テンプレート]]で結構なテンプレートが自前で通算日計算をしているので#timeに置き換えてやりたいんだけど、#timeで110年以前を指定する方法がわからないので(110-1-1 は 2010年に解釈される)その辺も扱っていると下手に置き換えられない
2009-10-06 11:25:54http://tinyurl.com/y8tbwcj PHP5.2以上だと DateTime クラスを使うようになっているけど、コンストラクタに文字列を渡すと strtotime() と同じようにパースされるということでいいんだろうか。PHPはなにをどう調べていいかさっぱり
2009-10-06 11:54:25でもって strtotime() は32ビットのUnix timeの範囲しか扱えなかったから、2桁年を解釈できなくても問題なかったわけで。{{#time:r|2001-1-1 -2000 years}}とかして逃げられるかしら
2009-10-06 12:03:51タイムスタンプも駄目。 {{#time:c|@-58664390400}} -> 0111-01-01T00:00:00+00:00 / {{#time:c|@-58664390401}} -> 2010-12-31T23:59:59+00:00
2009-10-06 12:45:42紀元前はどうかと思って調べると、@-62167219200: 0年1月1日0:00 までは2000年とされ、それ以前はすべて(無効扱いなのか)1970年1月1日になる。
2009-10-06 13:27:55結論: #timeで現状扱える範囲は 0111/01/01 - 9999/12/31 。DateTimeクラスのないPHP5.1以下だと多分2038年までだと思う。
2009-10-06 13:40:36