質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Q&A

解決済

3回答

3928閲覧

javascriptでの日付チェック

uer03108

総合スコア194

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

0グッド

0クリップ

投稿2018/05/24 09:37

編集2018/05/24 12:21

日付チェックのプログラムについてなのですが、下記の関数で良い書き方はあるでしょうか。

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

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

x_x

2018/05/24 09:39

それぞれの関数を作れということでしょうか?
kei344

2018/05/24 09:45

ご自身で試されたコードを質問文に追記し、「何」が「どのように」わからないのか、コードのどの部分で詰まっているのかなどを具体的に追記されたほうが回答が望めると思います。
sujico.net

2018/05/24 09:46

もうすこし詳細にお願いします。"下記の関数"とは一体なんですか?
mather

2018/05/24 10:07 編集

回答に必要な情報がとても不足しています。「日付チェック」:日付の何をチェックしたいのか?フォーマットなのか、ある特定の日と比較したいのか。「下記の関数」:下記の関数がどの関数のことかわからないし、何を目的とした関数を作りたいと思っているのか理解できない。「getY, getM, getD」:実装がどこにも書かれていないのでコメントできない。
mather

2018/05/24 12:29

元の質問にあったコードが追記で書かれたコードの一部と言っていますが、実際には全く異なりますし、結局何について質問したいのか書かれていないため、答えようがありません。きちんと聞きたいことを整理してください。
guest

回答3

0

JavaScript

1var date = parseDateString('YYYY-MM-DD hh:mm:ss', '2001-12-31 11:13:45'); 2 3console.log(date.getFullYear(), date.getMonth(), date.getDate(), date.getHours(), date.getMinutes(), date.getSeconds()); // 2001 11 31 11 13 45

Re: uer03108 さん

投稿2018/05/24 15:04

think49

総合スコア18164

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

think49

2018/05/24 15:08

興味本位で作りました。 いつものように使い方の説明がない理由はお察しください。
guest

0

ベストアンサー

ちょっと意図がわからない

javascript

1var y = new Date("2001-12-31").getFullYear(); 2var m = new Date("2001-12-31").getMonth()+1; 3var d = new Date("2001-12-31").getDate(); 4console.log([y,m,d]);

投稿2018/05/24 09:46

yambejp

総合スコア114839

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

制約条件が分かりませんが、叩き台として。

javascript

1function getY(date, nothing) { 2 return date.split("-")[0]; 3} 4function getM(date, nothing) { 5 return date.split("-")[1]; 6} 7function getD(date, nothing) { 8 return date.split("-")[2]; 9}

投稿2018/05/24 09:48

papinianus

総合スコア12705

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問