Javascriptで日付のデータの受け渡しで数値で取得した日付データ(例:1577199600000 おそらくミリセックまで含まれている)表記の日付をyyyy/mm/dd(例:2019/12/25)へフォーマットしたいと思ったのですが、初心者には時間がかかったので備忘録として残しておこうと思います。
数値からyyyy/mm/ddへの変換
きっとやり方はたくさんあるのでしょうが、私が参考にした方法を書きます。
サンプルコード yyyy/mm/dd
let SampleDate1 = new Date(1577199600000);
alert(SampleDate1.getFullYear() + ‘/’ +(‘0’ + (SampleDate1.getMonth()+1)).slice(-2)+ ‘/’ + (‘0’ + SampleDate1.getDate()).slice(-2));
//2019/12/25
上記コードを実行するとyyyy/mm/ddに変換されたコードがalert画面で表示されると思います。
実行方法がわからない場合は下記記事を参考に実行してみてください。
数値からyyyy年mm月dd日へ変換
サンプルコードを参考にすればyyyy年mm月dd日などのフォーマットへもミリセックから簡単に変更できます。
サンプルコード yyyy年mm月dd日
let SampleDate2 = new Date(1577199600000);
alert(SampleDate2.getFullYear() + ‘年’ +(‘0’ + (SampleDate2.getMonth()+1)).slice(-2)+ ‘月’ + (‘0’ + SampleDate2.getDate()).slice(-2)+ ‘日’);
//2019年12月25日
上記式を実行するとyyyy年mm月dd日のフォーマットで日時がalertで表示されると思います。他にも年月日をハイフン(-)表記に変えたりも少し変更するだけでできてしまいます。
数値から yyyy-mm-dd hh:mm:ss へ変換
せっかくなのでミリセックまで表示させてみます。
サンプルコード yyyy-mm-dd hh:mm:ss
let SampleDate3 = new Date(1559736867189);
alert(SampleDate3.getFullYear() + ‘-‘ +(‘0’ + (SampleDate3.getMonth()+1)).slice(-2)+ ‘-‘ + (‘0’ + SampleDate3.getDate()).slice(-2) + ‘ ‘+ SampleDate3.getHours()+ ‘:’+(‘0’ + ( SampleDate3.getMinutes())).slice(-2)+ ‘:’+ SampleDate3.getSeconds());
//2019-06-05 21:14:27
実行で秒数までフォーマットされているのが確認できると思います。
その他
せっかくなのでalert以外の書き方。
function timeFormat(dateNum){
let year = dateNum.getFullYear();
let month = dateNum.getMonth()+1;
let date = dateNum.getDate();
let hour = dateNum.getHours();
let minute = dateNum.getMinutes();
let time = “現在” + year + “年” + month + “月” + date + “日” + hour + “時” + minute + “分”;
alert(time);
}
let time = 1577199600000;let SampleDate = new Date(time);
timeFormat(SampleDate);
timeFormatというメソッドを作成し、数値の日付データを引数で受け渡せるようにしました。