Datefライブラリ-日付の書式設定

さまざまな形式で日付を出力するためのmini-JSライブラリであるdatefを紹介します。

利用可能な機能について簡単に説明します。



使用例:

datef('dd.MM.YY', new Date()); // "13.08.12" datef('dd.MM.YY'); //    —  «» var d = new Date(); d.setFullYear(2045); datef('dd.MM.YYYY', d); // "13.08.2045" //     : datef.formatters.ISODateTimeTZ(); // "2012-08-13T15:01:29 -04:00" //     … datef.register('myFormat', 'dMYY'); datef.formatters.myFormat(); // "13.8.12" //        var myFormat = datef.createFormatter('dMYY');
      
      







どのように配置されていますか?
コードの観点から見ると、私にとって最も興味深いことは環境へのコンプライアンスでした。つまり、nodejsとrequirejs / amdの両方のモジュールシステムを操作することでした。 幸いなことに、すべてが非常にシンプルであることが判明しました。

 (function () { 'use strict'; var datef = { answer: 42 }; // Expose our precious function to outer world. if (typeof exports !== 'undefined') { // node.js way module.exports.datef = datef; } else if (typeof define === 'function' && define.amd) { // requirejs/amd env define( 'datef', [], function () { return datef; } ); } else { // plain browser environment root.datef = datef; } })();
      
      





ライブラリの名前を自分のライブラリの名前に置き換えると、ミニユーティリティをさまざまな環境をサポートするモジュールに簡単かつ迅速に変換できます。

ライブラリ自体のコアに関しては、すべてが簡単で、おそらく退屈ですらあります。オブジェクトのキーとして機能するトークンのセットがあります。 これらのキーの値は、適切な日付が渡され、対応する値を返す関数です。 同じトークンに基づいて、フォーマット文字列を解析する正規表現が生成されます。



しかし、なぜですか?
ご存知のように、JavascriptではDate#toFormatなどのサポートはありません。 非標準のGekkoの日付#toLocaleFormatのみがあります。 ある美しい瞬間に、utils.date.humanDate、utils.date.humanTimeタイプなどの同じ原始的な自転車をプロジェクト間でドラッグしていることに気付き、経験豊富な開発者が作成した実証済みの柔軟な自転車ソリューションを探し始めました。

残念なことに、非常に古いライブラリしかありませんでした-原則として、日付を扱うための巨大で複雑なソリューションであり、多くの場合、Date.prototype拡張機能で罪を犯し、私は独自のモダンで拡張可能なライブラリを作成することにしました。



機能Xはどこにありますか?
計画とは、ロケールの作成、テストのカバー、ライセンスの選択を意味します。 何かが足りない場合は、理由コードがgithubに投稿されます:)



何と互換性がないのですか?
strftimeまたはPHP date()の機能の80%が20%の時間を要するため。 残りの20%の機能は、20%の人々が必要とし、80%の時間を必要とします。 そして、読み取り可能なトークンを使用して迅速なソリューションを作成したいと考えました。



All Articles