RubyのTime.parseメソッドで処理できる限り、ユーザーは好きな形式で日時を入力できます。次に、JavaScriptでこれらの日時を比較する必要があります。JavaScript用のRubyのTime.parseメソッドに相当するものはありますか?
たとえば、「2012年10月13日午前8時15分」を解析できるものが必要です。datejsを試しましたが、「at」という単語を処理できませんでした。たった1回の関数呼び出ししか必要としないものが本当に好きです。
RubyのTime.parseメソッドで処理できる限り、ユーザーは好きな形式で日時を入力できます。次に、JavaScriptでこれらの日時を比較する必要があります。JavaScript用のRubyのTime.parseメソッドに相当するものはありますか?
たとえば、「2012年10月13日午前8時15分」を解析できるものが必要です。datejsを試しましたが、「at」という単語を処理できませんでした。たった1回の関数呼び出ししか必要としないものが本当に好きです。
JavaScript 言語は、受け入れる日付形式に関してうるさい (そして実装はさまざま) であるため、ライブラリを使用せずに望みはありません。
Date.jsが最適です。ただし、ご指摘のとおり、ユーザーにとっては完全に理にかなっていても、ライブラリが予測できなかった形式が必ず存在します。
回避策として、維持する必要があるカスタム スクラビング関数で Date.js パーサーをラップすることをお勧めします。
// using Date.js
function parseDate(str) {
var wordsToRemove = ['on', 'at'] // ...
, regex = new RegExp('\\b(' + wordsToRemove.join('|') + ')\\b', 'g');
return Date.parse(str.replace(regex, ''));
}
Datejsには、JavaScriptで日付を処理するための非常に印象的なものがあります
http://momentjs.com/をお試しください。これまでで最高の時間のライブラリです!
これは少し遅いですが、うまくいけば、それでも役立つでしょう:
米国ロケールの日付文字列のみを解析している場合は、Sherlock.jsを確認してください。
唯一の制限は、年または過去の日付の指定をサポートしていないことです。'2012年10月13日午前8時15分'を解析できますが、常に楽しみにしているため、2013年10月13日午前8時15分にDateオブジェクトを返します。/\b20\d\d\b/
必要に応じて、文字列から年を自分で解析するなど、正規表現を作成することもできます。
開示:私はSherlock.jsの作成者です