私はこのような日付の文字列を持っています1 May 2010 To 15 Aug 2016
。私は関数の日付文字列としてこれをチェックしたいと思います。この文字列をnew Date(value)
でチェックしています。どのように日付としてこれをチェックすることができますか?isDateが返ってきていることを確認してください。無効な日付
答えて
var checkDate = function (str){
var dates = str.split("To");
for(var i = 0; i < dates.length; i++) {
if (moment(dates[i]).isValid()) {
return true;
} else {
return false;
}
}
}
のためのフィドルを作成しました。
私はあなたの必要に応じて私の機能を変更しました。あなたはそのようにする必要があります。チェックしてください。ここであなたのコードは、配列のseccond部分をチェックする機会を持っていません。例:「2001年5月1日から2015年8月15日まで」と考えてください。それは真実を返すでしょう。 2番目の部分は有効ではありません。私の機能をチェックし、それが他の人に役立つようにそれがOKであれば受け入れたものとしてマークしてください。 –
関数全体を 'str.split( 'To').every(s => return moment(s)> isValid());'に置き換えることはできますが、文字列形式をパーサに渡す必要があります。 – RobG
var str = "1 May 2010 To 15 Aug 2016";
//First split string
var array = str.split("To");
//then check if both are dates
for(var i = 0; i < array.length; i++) {
if(isNaN(new Date(array[i]))) { //Checking date
alert(array[i]+ ' is not valid date');
}
}
私はこのためにjs date library moment jsを使用します。
var checkDate = function (str){
var dates = str.split("To");
var flag = true;
for(var i = 0; i < dates.length; i++) {
if (moment(dates[i]).isValid()) {
flag = false;
}
}
return flag;
}
私はどこでも私のコードでは、この機能を使用することができる
私は変更があったあなたの関数と私は私のコードでそれを使用することを好む。おかげで、私の答えを参照してください。 –
おかげで、その時間が節約できます! –
しないでください。 [*ドキュメント*](http://momentjs.com/docs/#/parsing/string/)を読んで従ってください。**常に**解析する文字列の形式を指定してください。さもなければ、あなたはそれをパーサに任せて推測します。これは、必ずしも「正しい」日付ではなく、有効な日付を返す最初の試みを返します。 – RobG
文字列を解析するときは、解析する文字列の形式を指定する必要があります。矢印の機能は、その後、OKであれば
var isValid = '1 May 2010 To 15 Aug 2016'.split(' To ').every(function(s) {
return moment(s,'D MMM YYYY').isValid();
});
console.log(isValid);
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.14.1/moment.js"></script>
:
var isValid = '1 May 2010 To 15 Aug 2016'.split(' To ').every(s=>moment(s,'D MMM YYYY').isValid());
は仕事をしていませんこれは、ES5 ごと方法を使用して非常に簡単に行うことができます。
- 1. アラートが無効になっていることを確認してください
- 2. デバイスでIn App Purchasingが無効になっていることを確認してください。
- 3. Ouathトークンが無効であることを確認してください。
- 4. html日付が> NOWであることを確認してください
- 5. チェックボックスがオフになっていることを確認してください。
- 6. ユーザーがアクティブになっていることを確認してください
- 7. Emberがテストモードになっていることを確認してください
- 8. 重複がないことを確認してください
- 9. 日付がPHPと連続していることを確認してください
- 10. idが列に入っていることを確認してください
- 11. Laravel 5.3を使用して日付が他の日付と等しいか確認してください。
- 12. デフォルトのadmin $共有がServerNameで有効になっていることを確認してください
- 13. 端末でfacetimeが有効になっていることを確認してください。
- 14. CredSSPがPowershellでリモートで有効になっていることを確認してください
- 15. 「Google Maps Android API v2」が有効になっていることを確認してください。
- 16. Oracle Resource Managementが有効になっていることを確認してください
- 17. iOS7でプッシュ通知が有効になっていることを確認してください
- 18. SQLクエリで日付が空いていることを確認してください
- 19. Marklogicの日付形式を確認してください
- 20. androidの日付を確認してください
- 21. Laravelで日付を確認してください
- 22. ビューが隠されていないことを確認してください。
- 23. :レールが動作していないことを確認してください。
- 24. ラベルが入っているか確認してください
- 25. PHPの日時スタンプが正しいことを確認してください。
- 26. ファイルがSQLCipher暗号化付きの有効なSQLiteデータベースであることを確認してください
- 27. formControllerを使用して名前付きフォーム入力が無効になっていないか確認してください。
- 28. 日付が過去のクライアント側とサーバー側でないことを確認してください
- 29. Node.js |アカウントに残っている日を確認してください
- 30. 日付が指定された日付よりも大きいかどうか確認してください
2つの日付がありますか? 2010年5月1日と2016年8月15日です。それらを分割して両方をチェックする必要があります。 – Evus
inspiration http://stackoverflow.com/questions/492994/compare-two-dates-with-javascript – daremachine
2つの日付があり、これらの日付はあなたまたは(静的な)またはいくつかの場所から与えられ、動的のように –