[Javascript] 日時の文字列をDate.parseを使って便利に変換

2018年8月9日

Javascript テクノロジー プログラミング

システムを構築する時にデータを格納する時などにおいて、必ず使用するのが「日付処理」です。 データ保存する時に、保存した日時や、処理対象の日時の予定や期間など、色々な場面でdate値は必要になります。 javascriptもで、グローバル関数のDateに、parseという処理があり、非常に便利だったので、覚えておいてこれを利用しないてはありません。 これまで自作の関数で行なっていた処理がいとも簡単にサクッとできてしまって、拍子抜けするかもしれませんが、効率ってこういう事を言うんですね・・・orz

どんな事ができるの?

年月日の文字列を、unix-timeの値に変換
年月日時分秒を文字列(またはそれぞれの値)として保有している時に、そこからunix-timeを取得してdate値として扱う事ができます。

どうやって書くの?

// Date.parse("ここに色々な日付フォーマットが書ける"); // # sample-1 Date.parse("2018/1/1"); // > 1514732400000 // # sample-2 Date.parse("2018.1.1"); // > 1514732400000 // # sample-3 Date.parse("2018-1-1"); // > 1514732400000 // # sample-4 Date.parse("2018 1 1"); // > 1514732400000 // # sample-5 Date.parse("2018 Jan 1") // > 1514732400000 // # sample-7 Date.parse("Jan 1, 2018") // >1514732400000

時分秒を含めた書き方

Date.parse("2018/1/1 00:00:01") > 1514732401000

NGなやつ

Date.parse("20180101"); > 1514732400000 日付だけを指定すると、その日の0:0:0が返ってきます。 また時間フォーマットは"00:00:00"とコロンsplitで各以外はNGなようです。 日付フォーマットについては、文字列で色々なsplitで書けるので、非常に便利に使えますね。

Date関数の基本

ちなみに、取得したunix-timeは、Date関数を使ってそれぞれの値を取得する事が可能になります。

年月日の取得

var date_string = Date.parse("2018/1/1"); var dt = new Date(date_string); var year = dt.getFullYear(); var month = dt.getMonth()+1; var date = dt.getDate(); console.log(year+"/"+month+"/"+date); // > 2018/1/1

月日を2桁の合わせる

var month2 = (Array(2).join("0")+(dt.getMonth()+1)).slice(-2); var date2 = (Array(2).join("0")+dt.getDate()).slice(-2); console.log(year+"/"+month2+"/"+date2); > 2018/01/01 月の値は0スタートの為、"+1"をする事を忘れないように。

時分秒の取得

var date_string = Date.parse("2018/1/1 11:22:33"); // > 1514773353000 var dt = new Date(sate_string); var hour = dt.getHours(); var min = dt.getMinutes(); var sec = dt.getSeconds(); console.log(hour+":"+min+":"+sec); // > 11:22:33

参考

こまかなリファレンスなどを知りたい方は下記を参照ください。 https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/Date/parse

このブログを検索

ごあいさつ

このWebサイトは、独自思考で我が道を行くユゲタの少し尖った思考のTechブログです。 毎日興味がどんどん切り替わるので、テーマはマルチになっています。 もしかしたらアイデアに困っている人の助けになるかもしれません。