2016-09-29 2 views
0

私は、Webアプリケーションで自分の日付の時刻値を処理するためにmoment.jsを使用しています。私はフォーマットDD.MM.YYYYに従っています。例えば、29.09.2016です。今私は人の誕生日に入力できるいくつかの入力フィールドを持っています。 62と99の間の短い年を入力すると、次のように変換されます。input = 29.09.82タブを押した後に29.09.2082に変換されます(82は20になります)。この例のように、00年と62年の短い年を書くと、input = 29.09.5529.09.1955(55の前に19が入ります)に変換されます。したがって、最初の範囲は21世紀の1年に変換され、2番目の範囲は20世紀の1年に変換されます(これはデフォルトであるようですが、なぜわかりません)。今、私は将来になる年に変換しないようにしたいと考えています(2016年以下、そして短期年が16歳の2016年)。これどうやってするの?この時点で私は次のようなものを持っています:future year.jsへの変換を許可しない

if(value.isValid() && isDayOfBirth) { 
    value.format(myFormat); 
} 

これを行う方法やそれを確認する方法はありますか?私はhttp://momentjs.com/docs/に何も見つかりませんでした。ありがとう。

+0

stackoverflowのエディタにはいくつかの問題がありますが、本文全体を追加できませんでしたか?質問を編集して2つの単語を追加すると、プレビューに表示されますが、正しく保存されません。 – MrBuggy

+0

入力から日付オブジェクトをどのように準備しますか?この「29.09.82」フォーマットは瞬時にサポートされていません。 – Thaadikkaaran

+0

@ JaganathanBantheswaran私は自分の入力に(文字列として)書きます。私のコントローラに渡して、それを私のフォーマット「DD.MM.YYYY」に変換して結果を得ます29.09.2082 ...私はどのように、なぜ私はちょうどformat()と上記の書式を使用しているのかわかりません...変換はautomaticllyよりです.. – MrBuggy

答えて

1

これは動作するはずです。 現在の年をとり、解析された年がそれより大きいかどうかを確認します。 もしそうなら、あなたは100年を引く(20世紀に戻る)。

var now = moment(), 
    year = now.year(); //Get current year 

if (parsedDate.year() > year) { 
    parsedDate.subtract(100, "year"); 
} 
+0

こんにちは、これは完璧に動作します - ありがとう! – MrBuggy

関連する問題