🐷

【JavaScrpipt】日時操作

に公開
const d = new Date(); // 現在時を取得できる
console.log(d); // Tue Oct 28 2025 23:19:29 GMT+0900 (日本標準時)
// より簡潔に表示
console.log(d.toLocaleString()); // 2025/10/28 23:19:29

console.log(d.getFullYear()); // 2025
console.log(d.getMonth()); // 9 // 0, 1, 2, ...(0から数えた月)
console.log(d.getDate()); // 28
console.log(d.getHours()); // 23
console.log(d.getMinutes()); // 19
console.log(d.getSeconds()); // 29
console.log(d.getMilliseconds()); // 555
console.log(d.getDay()); // 0, 1, 2, ...(0から数えた曜日)

// 2025年10月28日
const d = new Date(2025, 9, 28); // 年, 月, 日 で指定できる。月は0から数える。必須は「年, 月」までで未指定は0で表示される
// 2025年2月末日
const d = new Date(2025, 2, 0); // 0日は1日の前日を取得→2月(1の月)の末日がうるう年に関わらず取得できる

d.setDate(15); // 15日に更新できる。new Date()はオブジェクトなので定数のままで良い
d.setDate(d.getDate() + 100); // のように、100日後を指定できる

console.log(d.toLocaleString());

const dBackup = new Date(d.getTime()); // dと同様の日時を取得
console.log(dBackup); // getTime()は Unix timestampを取得、表示する
// 現在から、2024年12月10日を引いて差を求める
new Date() - new Date(2024, 11, 10) // Unix timestamp(ミリ秒)に変換される
// 下記と同じ意味になる
// new Date().getTime() - new Date(2024, 11, 10).getTime();

const diff = new Date().getTime() - new Date(2024, 11, 10).getTime();
// 下記のようにも書ける
// const diff = Date.now() - new Date(2023, 5, 10).getTime();

// 1000で割って秒に。60で分。60で時間. 24で日の単位にする。さらに整数部分だけで取り出している
const days = Math.floor(diff / 1000 / 60 / 60 / 24);

console.log(diff); // Unix timestamp(ミリ秒)表示でよくわからない
console.log(days); // 日時で表示
const months = ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'];
const days = ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'];
const d = new Date(2025, 0, 1);

// January 01, Monday
const month = months[d.getMonth()];
const date = String(d.getDate()).padStart(2, '0');
const day = days[d.getDay()];
console.log(`${month} ${date}, ${day}`);

Discussion