LoginSignup
53
35

More than 3 years have passed since last update.

日付をYYYY-MM-DDの書式で返す関数 (JavaScript)

Last updated at Posted at 2020-03-02

よく使うのでメモ

Dateオブジェクトの戻り値を YYYY-MM-DD の書式に変換する関数

formData.js
// 日付をYYYY-MM-DDの書式で返すメソッド
function formatDate(dt) {
  var y = dt.getFullYear();
  var m = ('00' + (dt.getMonth()+1)).slice(-2);
  var d = ('00' + dt.getDate()).slice(-2);
  return (y + '-' + m + '-' + d);
}

今日の日付を YYYY-MM-DDで取得する

result.js
> formatDate(new Date());
'2020-03-02'

注意点

  • getMonth() は 0-11 を返す。0は1月、11が12月
  • slice(-2) は、文字列の右から数えて2文字目までを抜き出す。正確には、右から 0, -1, -2 番目までを取り出し、3番目(-2)を含まないので、結局右から2文字になる。

応用

n日後の日付を求める関数

result.js

function getAfterNdays(n){
   var dt = new Date();
   dt.setDate(dt.getDate()+n);
   return formatDate(dt);
}
node.js
> getAfterNdays(4);
'2020-03-06'

2つのYYYY-MM-DD形式の日付の差分(日数)を求める関数

dateDiff.js
function getDateDiff(dateString1, dateString2) {
  // 日付を表す文字列から日付オブジェクトを生成
  var date1 = new Date(dateString1);
  var date2 = new Date(dateString2);
  // 2つの日付の差分(ミリ秒)を計算
  var msDiff  = date1.getTime() - date2.getTime();
  // 求めた差分(ミリ秒)を日付に変換
  // 差分÷(1000ミリ秒×60秒×60分×24時間)
  return Math.ceil(msDiff / (1000 * 60 * 60 *24));
}
result.js
> getDateDiff("2020-03-10", "2020-03-05");
5
53
35
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
53
35