2017-06-02 5 views
0

「30/09/1992」のような入力日付文字列があり、私の必要性に合わせてこのコードが見つかりました。 PFBコード。JavaScriptの日付変換が失敗しない

var input1 = "30/09/1992"; 
var isVaidDate = false; 
var actualDate = ""; 
try{ 
var pattern = /^(\d{1,2})\/(\d{1,2})\/(\d{4})$/; 
var arrayDate = input1.match(pattern); 
var actualDate = new Date(arrayDate[3], arrayDate[2] - 1, arrayDate[1]); 
var isVaidDate = typeof dt.getMonth === 'function'; 
}catch(e){var output1 = false;} 
print(isVaidDate); 
print(actualDate); 

上記のコードは正常に動作しますが、私は「31/09/1992」または「40/09/1992」と入力を設定したときに、私が来て、無効な日付を期待していますが、私は以下の出力を得ます。 "31/09/1992" の

: "40/09/1992" の

true 
Thu Oct 01 1992 00:00:00 GMT+0530 (India Standard Time) 

true 
Thu Oct 10 1992 00:00:00 GMT+0530 (India Standard Time) 

は、どのように私は私がこれらの2つの文字列を渡すとき、これは失敗してもらう必要があります。ありがとう。また、何が起こっていると、それが失敗didntの理由、また有用であろう:)

+1

あなたが手動で '+ arrayDate [3]!== date.getFullYear()||をチェックする必要があります。 + arrayDate [2]!== date.getMonth()|| <同じ日付> ' – Rajesh

+1

私はこの問題を抱えていました。この記事の助けを借りてくるわけではありません:https://codereview.stackexchange.com/questions/109765/javascript-date-validation – Rajesh

+0

@Rajeshありがとう、私はあなたが与えたコードにいくつかの変更を加えました。既存のコードに改行すると、期待通りに機能します。その関数のためだけに0から始まるため、getMonth()+ 1を追加しました 'var valid = + arrayDate [3] === actualDate.getFullYear()&& + arrayDate [2] === actualDate.getMonth ()+ 1 && + arrayDate [1] === actualDate.getDate(); print(有効); ' –

答えて

1

この例をお手伝いをすることができます:ここ

var dateString = 'Mon Jun 24 2013 05:30:00 GMT+0530 (India Standard Time)'; 
var myDate = new Date(dateString); 
var final_date = myDate.getDate()+"-"+(myDate.getMonth()+1)+"-"+myDate.getFullYear(); 

あなたは日、月、年などの各変数を確認することができます。

+0

少し遅れて、申し訳ありません、私はこの答えを忘れました、ありがとうございました! –

関連する問題