导读:本期聚焦于小伙伴创作的《如何用javascript处理日期和时间_Date对象有哪些方法?》,敬请观看详情,探索知识的价值。以下视频、文章将为您系统阐述其核心内容与价值。如果您觉得《如何用javascript处理日期和时间_Date对象有哪些方法?》有用,将其分享出去将是对创作者最好的鼓励。

在javascript开发中,日期和时间的处理是非常常见的需求,比如获取当前时间、计算两个日期的差值、格式化日期展示等,这些场景都可以通过原生的Date对象来实现。Date对象是javascript内置的日期时间处理构造函数,提供了丰富的属性和方法来操作日期和时间数据。

Date对象的基础创建方式

使用Date对象首先需要创建实例,常见的创建方式有以下几种:

  • 无参数创建:获取当前系统的日期和时间
  • 传入时间戳创建:时间戳是1970年1月1日00:00:00 UTC到指定时间的毫秒数
  • 传入日期字符串创建:支持多种标准日期格式字符串
  • 传入年、月、日等参数创建:注意月份是从0开始计数的,0代表1月,11代表12月

下面是不同创建方式的代码示例:

// 无参数创建,获取当前时间
const now = new Date();
console.log(now);

// 传入时间戳创建,时间戳为1698765432100
const dateFromTimestamp = new Date(1698765432100);
console.log(dateFromTimestamp);

// 传入日期字符串创建
const dateFromString = new Date('2024-03-15 14:30:00');
console.log(dateFromString);

// 传入年、月、日等参数创建,注意月份从0开始
// 这里创建的是2024年3月15日 14点30分0秒
const dateFromParams = new Date(2024, 2, 15, 14, 30, 0);
console.log(dateFromParams);

Date对象常用方法分类

Date对象的方法可以分为获取时间相关、设置时间相关、转换格式相关三大类,下面分别介绍常用的核心方法。

获取时间相关方法

这类方法用于获取Date实例中对应的年、月、日、时、分、秒、毫秒等信息,部分方法支持获取UTC时间,方法名带UTC后缀即可。

方法名作用说明
getFullYear()获取四位数的年份
getMonth()获取月份,返回值0-11,0代表1月
getDate()获取月份中的第几天,返回值1-31
getDay()获取星期几,返回值0-6,0代表星期日
getHours()获取小时数,返回值0-23
getMinutes()获取分钟数,返回值0-59
getSeconds()获取秒数,返回值0-59
getMilliseconds()获取毫秒数,返回值0-999
getTime()获取时间戳,即1970年1月1日00:00:00 UTC到当前时间的毫秒数

下面是获取时间方法的示例代码:

const date = new Date('2024-03-15 14:30:25');
console.log('年份:', date.getFullYear()); // 输出2024
console.log('月份:', date.getMonth() + 1); // 输出3,因为月份从0开始需要加1
console.log('日期:', date.getDate()); // 输出15
console.log('星期:', date.getDay()); // 输出5,代表星期五
console.log('小时:', date.getHours()); // 输出14
console.log('分钟:', date.getMinutes()); // 输出30
console.log('秒数:', date.getSeconds()); // 输出25
console.log('时间戳:', date.getTime()); // 输出对应时间戳

设置时间相关方法

这类方法用于修改Date实例中的时间属性,和获取方法对应,同样支持UTC版本,方法名带UTC后缀即可。

  • setFullYear(year, month, day):设置年份,可选设置月份和日期
  • setMonth(month, day):设置月份,可选设置日期,月份取值0-11
  • setDate(day):设置月份中的第几天
  • setHours(hours, minutes, seconds, ms):设置小时,可选设置分、秒、毫秒
  • setMinutes(minutes, seconds, ms):设置分钟,可选设置秒、毫秒
  • setSeconds(seconds, ms):设置秒数,可选设置毫秒
  • setMilliseconds(ms):设置毫秒数
  • setTime(timestamp):通过时间戳设置整个日期时间

下面是设置时间方法的示例代码:

const date = new Date();
console.log('修改前的日期:', date);

// 设置年份为2025年
date.setFullYear(2025);
console.log('修改年份后:', date);

// 设置月份为4月,注意传入3(因为0是1月)
date.setMonth(3);
console.log('修改月份后:', date);

// 设置日期为20号
date.setDate(20);
console.log('修改日期后:', date);

// 设置时间为10点30分
date.setHours(10, 30);
console.log('修改时间后:', date);

格式转换相关方法

这类方法用于将Date实例转换为指定格式的字符串,方便展示或者传输。

  • toString():返回完整的日期时间字符串,格式由运行环境决定
  • toLocaleString():返回本地格式的日期时间字符串,会根据当前环境的语言和地区调整格式
  • toLocaleDateString():返回本地格式的日期字符串,不包含时间
  • toLocaleTimeString():返回本地格式的时间字符串,不包含日期
  • toISOString():返回ISO 8601标准的日期时间字符串,格式为YYYY-MM-DDTHH:mm:ss.sssZ
  • toJSON():返回和toISOString()相同的结果,常用于JSON序列化

下面是格式转换方法的示例代码:

const date = new Date('2024-03-15 14:30:25');
console.log('toString结果:', date.toString());
console.log('toLocaleString结果:', date.toLocaleString());
console.log('toLocaleDateString结果:', date.toLocaleDateString());
console.log('toLocaleTimeString结果:', date.toLocaleTimeString());
console.log('toISOString结果:', date.toISOString());
console.log('toJSON结果:', date.toJSON());

常见日期时间处理场景示例

计算两个日期的差值

通过计算两个Date实例的时间戳差值,可以得到两个日期相差的毫秒数,再转换为天、小时等单位即可。

const date1 = new Date('2024-03-01');
const date2 = new Date('2024-03-15');
// 计算毫秒差
const diffMs = date2.getTime() - date1.getTime();
// 转换为天数
const diffDays = Math.floor(diffMs / (1000 * 60 * 60 * 24));
console.log('两个日期相差:', diffDays, '天'); // 输出14天

自定义日期格式化函数

原生Date对象的格式化方法灵活性不足,我们可以自己实现一个简单的格式化函数,支持自定义格式占位符。

function formatDate(date, formatStr) {
    const year = date.getFullYear();
    const month = String(date.getMonth() + 1).padStart(2, '0');
    const day = String(date.getDate()).padStart(2, '0');
    const hours = String(date.getHours()).padStart(2, '0');
    const minutes = String(date.getMinutes()).padStart(2, '0');
    const seconds = String(date.getSeconds()).padStart(2, '0');
    // 替换格式占位符
    return formatStr
        .replace('YYYY', year)
        .replace('MM', month)
        .replace('DD', day)
        .replace('HH', hours)
        .replace('mm', minutes)
        .replace('ss', seconds);
}

const now = new Date();
const formatted = formatDate(now, 'YYYY-MM-DD HH:mm:ss');
console.log('格式化后的日期:', formatted); // 输出类似2024-03-15 14:30:25

注意事项

使用Date对象时需要注意几个常见问题:

  • 月份是从0开始计数的,获取和设置月份时都需要处理这个偏移,避免出错
  • getDay()返回的是星期几,0代表星期日,不是星期一
  • 不同浏览器对日期字符串的解析可能存在差异,建议优先使用时间戳或者年、月、日参数创建Date实例
  • 处理跨时区问题时,优先使用UTC相关的方法,避免本地时区带来的计算误差
Date对象是javascript处理日期时间的基础工具,掌握上述常用方法可以满足大部分日常开发需求,复杂场景可以结合自定义函数扩展功能。

javascriptDate对象日期处理时间处理修改时间:2026-07-23 02:39:52

免责声明:​ 已尽一切努力确保本网站所含信息的准确性。网站内容多为原创整理与精心编撰,观点力求客观中立。本站旨在免费分享,内容仅供个人学习、研究或参考使用。若引用了第三方作品,版权归原作者所有。如内容涉及您的权益,请联系我们处理。
内容垂直聚焦
专注技术核心技术栏目,确保每篇文章深度聚焦于实用技能。从代码技巧到架构设计,为用户提供无干扰的纯技术知识沉淀,精准满足专业提升需求。
知识结构清晰
覆盖从开发到部署的全链路。AI、前端、编程、数据库、服务器、建站、系统层层递进,构建清晰学习路径,帮助用户系统化掌握开发与运维所需的核心技术。
深度技术解析
拒绝泛泛而谈,深入技术细节与实践难点。无论是数据库优化还是服务器配置,均结合真实场景与代码示例进行剖析,致力于提供可直接应用于工作的解决方案。
专业领域覆盖
精准对应开发生命周期。从前端界面到后端编程,从数据库操作到服务器运维,形成完整闭环,一站式满足全栈工程师和运维人员的技术需求。
即学即用高效
内容强调实操性,步骤清晰、代码完整。用户可根据教程直接复现和应用于自身项目,显著缩短从学习到实践的距离,快速解决开发中的具体问题。
持续更新保障
专注既定技术方向进行长期、稳定的内容输出。确保各栏目技术文章持续更新迭代,紧跟主流技术发展趋势,为用户提供经久不衰的学习价值。