日付チェックのプログラムについてなのですが、下記の関数で良い書き方はあるでしょうか。
javascript
1 2 //年月日取得 3 var y = getY("2001-12-31", "YYYY-MM-DD"); //2001 4 var m = getM("2001-12-31", "YYYY-MM-DD"); //12 5 var d = getD("2001-12-31", "YYYY-MM-DD"); //31 6
追記
申し訳ありません。
下記プログラムの一部になります。
参考サイトのコードにフォーマットを追加したものになります。
http://www.kanaya440.com/contents/tips/javascript/003.html
javascript
1 2 3//日付チェックプログラム 4var bl; 5 6bl = ckDate("2001-12-31", "YYYY-MM-DD"); //true 7bl = ckDate("2001-01-30", "YYYY-MM-DD"); //true 8 9bl = ckDate("2001-15-41", "YYYY-MM-DD"); //false 10bl = ckDate("2001-02-31", "YYYY-MM-DD"); //false 11 12 13///////////////////////////////////////////////////////////////// 14// 15// 日付チェックプログラム 16// 17///////////////////////////////////////////////////////////////// 18function ckDate(datestr, format) { 19 20 //パターン 21 var pat = fotmat; 22 23 pat = pat.replace("YYYY", "\d{4}"); 24 pat = pat.replace("MM" , "\d{2}"); 25 pat = pat.replace("DD" , "\d{2}"); 26 27 pat = "/^" + pat + "$/"; 28 29 //書式チェック 30 if(!datestr.match(pat))return false; // /^\d{4}\-\d{2}\-\d{2}$/ 31 32 //年月日取得 33 var vYear = getY(datestr, format); //年 34 var vMonth = getM(datestr, format); //月(0-11) 35 var vDay = getD(datestr, format); //日 36 37 //月日の妥当性チェック 38 if(vMonth >= 0 && vMonth <= 11 && vDay >= 1 && vDay <= 31){ 39 var vDt = new Date(vYear, vMonth, vDay); 40 if(isNaN(vDt)){ 41 return false; 42 }else if(vDt.getFullYear() == vYear && vDt.getMonth() == vMonth && vDt.getDate() == vDay){ 43 return true; 44 }else{ 45 return false; 46 } 47 }else{ 48 return false; 49 } 50} 51 52
それぞれの関数を作れということでしょうか?
ご自身で試されたコードを質問文に追記し、「何」が「どのように」わからないのか、コードのどの部分で詰まっているのかなどを具体的に追記されたほうが回答が望めると思います。
もうすこし詳細にお願いします。"下記の関数"とは一体なんですか?
回答に必要な情報がとても不足しています。「日付チェック」:日付の何をチェックしたいのか?フォーマットなのか、ある特定の日と比較したいのか。「下記の関数」:下記の関数がどの関数のことかわからないし、何を目的とした関数を作りたいと思っているのか理解できない。「getY, getM, getD」:実装がどこにも書かれていないのでコメントできない。
挙動だけ見ると、「date parserを作ってください」という制作依頼に読めます。 http://php.net/manual/ja/function.date.php
元の質問にあったコードが追記で書かれたコードの一部と言っていますが、実際には全く異なりますし、結局何について質問したいのか書かれていないため、答えようがありません。きちんと聞きたいことを整理してください。
回答3件
あなたの回答
tips
プレビュー