[特殊字符] JS Date 对象8大使用场景

📅 JS Date 对象8大使用场景

new Date() 是JS最常用、最实用的内置对象,专门处理时间、日期!

基础获取、制定

js 复制代码
// 获取当前时间
const now = new Date();

// 指定时间
const date = new Date("2025-10-01");

开发必用的 10 个实用方法

获取 年 / 月 / 日 / 时 / 分 / 秒

js 复制代码
const date = new Date();

date.getFullYear();   // 年 → 2026
date.getMonth() + 1;  // 月 → 3(注意:月份从0开始!必须+1)
date.getDate();       // 日 → 23
date.getHours();      // 时
date.getMinutes();    // 分
date.getSeconds();    // 秒
date.getDay();        // 星期 0=周日,1=周一 ... 6=周六

时间格式化

js 复制代码
// 把 `2026-03-23T12:34:56.789Z` 变成 `2026-03-23 12:34:56`
function formatTime(date) {
  const y = date.getFullYear();
  const m = (date.getMonth() + 1).toString().padStart(2, '0');
  const d = date.getDate().toString().padStart(2, '0');
  const hh = date.getHours().toString().padStart(2, '0');
  const mm = date.getMinutes().toString().padStart(2, '0');
  const ss = date.getSeconds().toString().padStart(2, '0');
  return `${y}-${m}-${d} ${hh}:${mm}:${ss}`;
}

获取时间戳

js 复制代码
// 方式1
const ts = Date.now();

// 方式2
const ts2 = new Date().getTime();

console.log(ts); // 1742789012345
console.log(ts2); // 1742789012345

计算两个时间差

js 复制代码
const start = new Date("2026-03-23").getTime();
const end = new Date("2026-03-25").getTime();
const diff = end - start; // 毫秒差

const day = diff / (1000 * 60 * 60 * 24); // 天数

倒计时功能

js 复制代码
function countDown(endTime) {
  const now = Date.now();
  const diff = endTime - now;
  const sec = diff / 1000;

  const d = parseInt(sec / 3600 / 24);
  const h = parseInt((sec / 3600) % 24);
  const m = parseInt((sec / 60) % 60);
  const s = parseInt(sec % 60);

  return `${d}天 ${h}时 ${m}分 ${s}秒`;
}

判断是否是今天

js 复制代码
function isToday(date) {
  const today = new Date();
  return date.getDate() === today.getDate()
      && date.getMonth() === today.getMonth()
      && date.getFullYear() === today.getFullYear();
}

时间转刚刚 / 几分钟前 / 几小时前

js 复制代码
function timeAgo(timestamp) {
  const now = Date.now();
  const diff = (now - timestamp) / 1000;// /1000 ->转换为秒

  if (diff < 60) return '刚刚';
  if (diff < 3600) return parseInt(diff / 60) + '分钟前';
  if (diff < 86400) return parseInt(diff / 3600) + '小时前';
  return parseInt(diff / 86400) + '天前';
}

获取当月第一天 / 最后一天

js 复制代码
// 当月第一天
const firstDay = new Date(date.getFullYear(), date.getMonth(), 1);

// 当月最后一天
const lastDay = new Date(date.getFullYear(), date.getMonth() + 1, 0);
相关推荐
仿生狮子2 小时前
OpenAI 攻下千禧年难题之后,开发者似乎无动于衷
前端·数学·vibecoding
夏幻灵6 小时前
JavaScript this 面试:五种绑定规则、优先级与常见面试陷阱
开发语言·javascript·面试
Lvan的前端笔记6 小时前
docker:每个前端项目一个 Nginx 容器还是只有一个Nginx容器
前端·nginx·docker
程序猿编码6 小时前
榨干 RTX5090 算力!Qwen3 专用单卡推理引擎,手写C++/CUDA 算子实现 MTP 推测解码
开发语言·c++·大模型推理·qwen3·多模态推理
三天不学习6 小时前
Egg.js 4 突然爆火,原因是否归结于AI 原生落地需求爆发?
前端·javascript·全栈·egg.js
xcs194057 小时前
前端 vue 的前端页面debugger 进不去
前端·javascript·vue.js
bkspiderx7 小时前
Qt 插件机制:动态扩展应用功能的核心框架
开发语言·qt·元数据·qt 插件·qpluginloader
程序员老陆8 小时前
深入理解 C++ thread_local:线程私有存储的正确打开方式
开发语言·c++·程序设计
沐晓时光8 小时前
C语言入门,深入理解指针(3)
c语言·开发语言
明月_清风8 小时前
Deno 终局来了:从挑战 Node 到被 Cloudflare 收编
前端·后端·node.js