JavaScript Date时间对象的常用操作方法总结

JavaScript 时间对象的操作方法

JavaScript的Date对象提供了丰富的方法来操作日期和时间。以下是主要的操作方法分类:

创建Date对象

javascript 复制代码
new Date()                      // 当前日期和时间
new Date(milliseconds)          // 自1970-01-01 00:00:00 UTC起经过的毫秒数
new Date(dateString)            // 解析日期字符串
new Date(year, month, day, hours, minutes, seconds, ms)

获取时间方法

javascript 复制代码
let date = new Date();

date.getFullYear()       // 获取年份(4位数)
date.getMonth()          // 获取月份(0-11)
date.getDate()           // 获取日(1-31)
date.getDay()            // 获取星期(0-6, 0表示周日)
date.getHours()          // 获取小时(0-23)
date.getMinutes()        // 获取分钟(0-59)
date.getSeconds()        // 获取秒(0-59)
date.getMilliseconds()   // 获取毫秒(0-999)
date.getTime()           // 获取时间戳(毫秒数,从1970-1-1)
date.getTimezoneOffset() // 获取UTC与本地时区差异,以分钟为单位

UTC时间获取方法(世界时)

javascript 复制代码
date.getUTCFullYear()
date.getUTCMonth()
date.getUTCDate()
date.getUTCDay()
date.getUTCHours()
date.getUTCMinutes()
date.getUTCSeconds()
date.getUTCMilliseconds()

设置时间方法

javascript 复制代码
date.setFullYear(year [, month, day])
date.setMonth(month [, day])
date.setDate(day)
date.setHours(hour [, min, sec, ms])
date.setMinutes(min [, sec, ms])
date.setSeconds(sec [, ms])
date.setMilliseconds(ms)
date.setTime(milliseconds)     // 从1970-1-1 00:00:00 UTC开始计算的毫秒数

UTC时间设置方法

javascript 复制代码
date.setUTCFullYear(year [, month, day])
date.setUTCMonth(month [, day])
date.setUTCDate(day)
date.setUTCHours(hour [, min, sec, ms])
date.setUTCMinutes(min [, sec, ms])
date.setUTCSeconds(sec [, ms])
date.setUTCMilliseconds(ms)

其他常用方法

javascript 复制代码
date.toString()         // 返回完整日期时间字符串
date.toDateString()     // 返回日期部分的字符串
date.toTimeString()     // 返回时间部分的字符串
date.toLocaleString()   // 返回本地格式的日期时间字符串
date.toLocaleDateString()
date.toLocaleTimeString()
date.toUTCString()      // 返回UTC时间字符串
date.toISOString()      // 返回ISO 8601格式字符串 (YYYY-MM-DDTHH:mm:ss.sssZ)
date.valueOf()          // 返回时间戳,等同于date.getTime()

示例用法

javascript 复制代码
let now = new Date();

// 获取本月最后一天
let nextMonthFirstDay = new Date(now.getFullYear(), now.getMonth() + 1, 1);
let lastDayOfMonth = new Date(nextMonthFirstDay - 1);

// 计算两个日期差值
let date1 = new Date(2023, 0, 1);
let date2 = new Date();
let diffInDays = Math.floor((date2 - date1) / (1000 * 60 * 60 * 24));

// 格式化日期
function formatDate(date) {
  return [
    date.getFullYear(),
    (date.getMonth() + 1).toString().padStart(2, '0'),
    date.getDate().toString().padStart(2, '0')
  ].join('-');
}

日常工作中,熟练掌握了这些方法,你就可以在JavaScript中灵活地处理各种日期和时间操作了。

相关推荐
福兮说5 小时前
设计稿是 #4A7C6F,页面量出来是 #4B7C6F:HEX、HSL、透明度、canvas 来回转的七个坑
前端·javascript·css·canvas
郑州光合科技余经理6 小时前
海外版外卖加盟:总站与分站配送规则怎么分开管
java·开发语言·前端·后端·uni-app·php·ai编程
小呆呆6666 小时前
副业搞起来,小说,漫画,漫剧的成本优化思路
前端·后端·面试
凤城老人7 小时前
从 PyQt6 到 Electron:给 Edge TTS 做一个“多角色配音机“的踩坑手记
javascript·typescript·electron
Dovis(誓平步青云)7 小时前
浇水提醒刚弹出又消失,植物状态别只存一个百分比
开发语言·前端·javascript·pdf·ecmascript·电脑
码艺-Alimjan7 小时前
Vben Admin 新增维吾尔语 Vben-Modal的关键坑之一
前端·javascript·vue.js
可乐鸡翅yeah_8 小时前
hls.js 手动自定义 http 请求 loader,修改请求头实战
开发语言·前端·javascript·网络协议·http·ecmascript·m3u8在线
IT_陈寒8 小时前
Vite静态资源导入这个坑我帮你们踩过了
前端·人工智能·后端
广州华水科技8 小时前
大坝安全监测解决方案:单北斗GNSS形变监测系统应用与维护
前端
yivifu9 小时前
中文古籍电子书注释集成
前端·javascript·python·beautifulsoup·epub