Bug 1241 javascript の document.lastModified はローカライズされて表示されるべき #2
初回投稿日時: 2005年10月01日00時28分14秒
最終更新日時: 2005年10月01日02時28分53秒
カテゴリ: Mozilla Core
固定リンク: id=2005100100
SNS:
Tweet (list)
いまとなっては懐かしい、日本トップ・ウェブサイト テスト プロジェクトで発見された、IEとの非互換問題。
最終的に、document.lastModified
は常に、MM/DD/YYYY hh:mm:ss
という形式の文字列を返すように変更した。これは、HTTP経由か、ローカルファイルかも関係ないし、HTTPヘッダにlast-modifiedがあるかどうかも関係無い。常に、この形式は守られる。(ちなみに、HTTP経由で、last-modifiedが不明、もしくは不正な形式だった場合は現在時刻が返される。これは動的なページにおいては概ね正しいはずだ。)
肝心の返される内容だが、これはシステムの時刻設定に左右される。JSTのシステムの場合、GMTに九時間加算した時間が返される。つまり、日本の標準時間で返される。(今までのMozillaは常にGMTで返していた。正確にはHTTPヘッダの文字列がそのまま返されていたのだが。)
これらの仕様から、document.lastModified
から取得した文字列をDateTimeオブジェクトに必ず変換可能であることが保証される。(日本人になじみのある形式で表示したければ、一度DateTimeオブジェクトを作成し、toLocaleString
を利用すれば、システム標準のフォーマットで表示可能である。)
参考となったMSの文書はlastModified Property (document) (Internet Explorer - DHTML)である。
また、とほほ氏のlastModifiedを綺麗に表示するには?がこの修正において大きな役割を果たしたことも記しておく。
最後に、テストケースと、そのスクリーンショット(Firefoxは修正後のもの)へのリンクを記しておく。