JavaScript 内置对象-日期对象
在JavaScript中,处理日期和时间是一个常见的需求。无论是显示当前时间、计算两个日期之间的差异,还是格式化日期字符串,Date 对象都能提供强大的支持。本文将详细介绍 Date 对象的使用方法,包括创建日期实例、获取和设置日期值、以及一些常用的日期操作。
一、创建 Date 对象
使用默认构造函数
可以通过不带参数的 Date() 构造函数来创建一个包含当前日期和时间的 Date 实例:
let now = new Date();
console.log(now); // 输出类似于 "2025-02-16T00:08:00.123Z"
注意:输出格式可能会根据你的时区有所不同。
根据特定日期创建
你也可以传递一个表示具体日期时间的字符串或时间戳来创建 Date 对象:
// 通过字符串
let specificDate = new Date('2025-02-16T00:00:00');
console.log(specificDate);// 通过时间戳(自1970年1月1日以来的毫秒数)
let timestamp = new Date(1708032000000);
console.log(timestamp);
二、获取日期信息
一旦有了 Date 对象,就可以使用多种方法来提取其各个组成部分的信息。
获取完整日期
- getFullYear():返回四位数字的年份。
- getMonth():返回月份(0-11),其中0代表一月。
- getDate():返回一个月中的某一天(1-31)。
- getDay():返回一周中的某一天(0-6),其中0代表星期天。
let today = new Date();
console.log(today.getFullYear()); // 当前年份
console.log(today.getMonth()); // 当前月份减一
console.log(today.getDate()); // 当前日期
console.log(today.getDay()); // 当前星期几
获取时间信息
- getHours():返回小时数(0-23)。
- getMinutes():返回分钟数(0-59)。
- getSeconds():返回秒数(0-59)。
- getMilliseconds():返回毫秒数(0-999)。
console.log(today.getHours()); // 当前小时
console.log(today.getMinutes()); // 当前分钟
console.log(today.getSeconds()); // 当前秒数
console.log(today.getMilliseconds()); // 当前毫秒数
三、设置日期信息
同样地,Date 对象也提供了相应的方法来修改其内容。
设置日期部分
- setFullYear(yearValue[, monthValue[, dateValue]])
- setMonth(monthValue[, dateValue])
- setDate(dateValue)
设置时间部分
- setHours(hoursValue[, minutesValue[, secondsValue[, msValue]]])
- setMinutes(minutesValue[, secondsValue[, msValue]])
- setSeconds(secondsValue[, msValue])
- setMilliseconds(msValue)
例如,我们可以这样改变日期对象的时间:
let eventDate = new Date();
eventDate.setHours(14); // 设置时间为下午2点
eventDate.setMinutes(30); // 设置分钟为30
console.log(eventDate);
四、日期计算
计算两个日期之间的差值
要计算两个日期之间的差异,可以先将它们转换成时间戳(即从1970年1月1日起的毫秒数),然后相减。
let startDate = new Date('2025-01-01');
let endDate = new Date('2025-02-16');let diffTime = Math.abs(endDate - startDate);
let diffDays = Math.ceil(diffTime / (1000 * 60 * 60 * 24));
console.log(`${diffDays} 天`);
添加或减少日期
可以通过调整日期对象的各部分来实现增加或减少日期的功能。比如,想要增加一天,可以直接对 Date 对象调用 setDate() 方法,并传入当前日期加上所需的天数。
let tomorrow = new Date();
tomorrow.setDate(tomorrow.getDate() + 1);
console.log(tomorrow);
五、格式化日期
虽然 Date 对象本身没有直接提供格式化日期的方法,但可以通过组合使用上述的各种获取方法来构建自定义的日期格式。
function formatDate(date) {let year = date.getFullYear();let month = String(date.getMonth() + 1).padStart(2, '0'); // 加1是因为月份是从0开始计数的let day = String(date.getDate()).padStart(2, '0');return `${year}-${month}-${day}`;
}let formattedDate = formatDate(new Date());
console.log(formattedDate); // 输出格式化的日期,如 "2025-02-16"
结语
感谢您的阅读!如果您对JavaScript的Date对象或者其他相关话题有任何疑问或见解,欢迎继续探讨。
相关文章:
JavaScript 内置对象-日期对象
在JavaScript中,处理日期和时间是一个常见的需求。无论是显示当前时间、计算两个日期之间的差异,还是格式化日期字符串,Date 对象都能提供强大的支持。本文将详细介绍 Date 对象的使用方法,包括创建日期实例、获取和设置日期值、以…...
本地大模型编程实战(19)RAG(Retrieval Augmented Generation,检索增强生成)(3)
文章目录 准备创建矢量数据库对象创建 LangGraph 链将检索步骤转化为工具定义节点构建图 见证效果qwen2.5llama3.1MFDoom/deepseek-r1-tool-calling:7b 总结代码参考 上一篇文章我们演练了一个 用 langgraph 实现的 RAG(Retrieval Augmented Generation,检索增强生成) 系统。本…...
DeepSeek与ChatGPT:AI语言模型的全面对决
DeepSeek与ChatGPT:AI语言模型的全面对决 引言:AI 语言模型的时代浪潮一、认识 DeepSeek 与 ChatGPT(一)DeepSeek:国产新星的崛起(二)ChatGPT:AI 界的开拓者 二、DeepSeek 与 ChatGP…...
2024年年终总结
2024年终于过去了,这绝对是我人生中最惨痛的一年!被小人欺骗、被庸人耽误、被自己蠢到!不由的让我想起了22年那次算命,算命先生说我十年低谷期,如果从15年进创业公司开始,24年是最后一年,果然应…...
利用 Valgrind 检测 C++ 内存泄露
Valgrind 是一款运行在 Linux 系统上的编程工具集,主要用于调试和分析程序的性能、内存使用等问题。其中最常用的工具是 Memcheck,它可以帮助检测 C 和 C 程序中的内存管理错误,如内存泄漏、使用未初始化的内存、越界访问等。 安装 这里我以…...
Python中的HTTP客户端库:httpx与request | python小知识
Python中的HTTP客户端库:httpx与request | python小知识 在Python中,发送HTTP请求和处理响应是网络编程的基础。requests和httpx是两个常用的HTTP库,它们都提供了简洁易用的API来发送HTTP请求。然而,httpx作为新一代的HTTP客户端…...
【Python】Python入门基础——环境搭建
学习Python,首先需要搭建一个本地开发环境,或是使用线上开发环境(各类练习网站),这里主要记录本地开发环境的配置。 目录: 一、下载和安装python解释器 官网下载地址:Download Python | Pytho…...
2025 pwn_A_childs_dream
文章目录 fc/sfc mesen下载和使用推荐 fc/sfc https://www.mesen.ca/docs/ mesen2安装,vscode安装zg 任天堂yyds w d 左右移动 u结束游戏 i崩溃或者卡死了 L暂停 D658地方有个flag 发现DEEE会使用他。且只有这个地方,maybe会输出flag,应…...
面试题整理:操作系统
文章目录 操作系统操作系统基础1. 操作系统的功能?2. 什么是用户态和内核态? 进程和线程1. 是什么?区别?2. ⭐线程间的同步的方式有哪些?3. PCB 是什么?包含哪些信息?4. 进程的状态有哪些&#…...
构建未来教育的基石:智慧校园与信息的重要性
随着科技的迅猛发展,教育领域正经历一场深刻的变革。在这个过程中,“智慧校园”作为教育信息化的重要实践,扮演着不可或缺的角色。智慧校园不仅仅是硬件设施的升级,更是一种全新的教育理念,强调利用信息技术优化教育资…...
C# 控制台相关 API 与随机数API
C# 控制台相关 API 与随机数API 控制台输入输出 功能说明 Console.WriteLine(string): 输出字符串并换行Console.Write(string, string): 输出字符串不换行Console.ReadLine(): 等待用户输入并返回字符串Console.ReadKey(bool).KeyChar: 读取按键,指定是否显示输…...
【踩坑】⭐️MyBatis的Mapper接口中不建议使用重载方法
目录 🍸前言 🍻一、背景 🍹二、问题处理 💞️三、处理方法 🍸前言 小伙伴们大家好,很久没有水..不是,写文章了,都收到系统的消息了;我算下时间,上周是单休…...
CSS Grid 网格布局,以及 Flexbox 弹性盒布局模型,它们的适用场景是什么?
CSS Grid网格布局和Flexbox弹性盒布局模型都是现代CSS布局的重要工具,它们各自具有独特的优势和适用场景。 作为前端开发工程师,理解这些布局模型的差异和适用场景对于编写高效、可维护的代码至关重要。 CSS Grid网格布局 适用场景: 复杂…...
HDFS体系结构
HDFS 支持主从结 构 , 主节 点 称为 NameNode ,从节点称为 DataNode HDFS中还包含一个 SecondaryNameNode 进程,只要辅助主节点 公司BOSS:NameNode (NN) 秘书:SecondaryNameNode (2NN) 员工&a…...
AI大模型的技术突破与传媒行业变革
性能与成本:AI大模型的“双轮驱动” 过去几年,AI大模型的发展经历了从实验室到产业化的关键转折。2025年初,以DeepSeek R1为代表的模型在数学推理、代码生成等任务中表现超越国际头部产品,而训练成本仅为传统模型的几十分之一。这…...
vscode/cursor+godot C#中使用socketIO
在 Visual Studio Code(VS Code)中安装 NuGet 包(例如SocketIOClient),你可以通过以下几种方法: 方法 1:使用dotnet cli 打开终端:在 VS Code 中按下Ctrl 或者通过菜单View -> Terminal打开终端。 导…...
分段线性插值
分段线性插值 分段线性插值,就是将插值点用折线段连接起来逼近f(x)。设已知节点 a x 0 < x 1 < ⋅ ⋅ ⋅ < x n b ax_0<x_1<<x_nb ax0<x1<⋅⋅⋅<xnb上的函数值 f 0 , f 1 , . . . , f n f_0,f_1,...,f_n f0,f1,...,fn&a…...
制作一个项目用于研究elementUI的源码
需求:修改el-tooltip的颜色,发现传递参数等方法都不太好用,也可以使用打断点的方式,但也有点麻烦,因此打算直接修改源码,把组件逻辑给修改了 第一步下载源码 源码地址 GitHub - ElemeFE/element: A Vue.j…...
[AI]从零开始的llama.cpp部署与DeepSeek格式转换、量化、运行教程
一、前言 在上一次的DeepSeek的部署教程中,我们使用Ollama与LM Studio很轻松的部署了DeepSeek并且也完成了相关API的调用,如果还有不会的小伙伴请看下面的教程: DeepSeek本地部署:[AI]从零开始的DeepSeek本地部署及本地API调用教…...
vLLM专题(二):安装-CPU
vLLM 是一个 Python 库,支持以下 CPU 变体。选择您的 CPU 类型以查看供应商特定的说明: Intel/AMD x86 vLLM 最初支持在 x86 CPU 平台上进行基本模型推理和服务,支持的数据类型包括 FP32、FP16 和 BF16。 注意 此设备没有预构建的 wheel 包或镜像,因此您必须从源代码构建 v…...
Git工作树管理器:提升多分支并行开发效率的利器
1. 项目概述:为什么我们需要一个工作树管理器?如果你是一个长期与 Git 打交道,并且经常需要同时处理多个功能分支、修复多个 bug 或者并行跟进不同版本需求的开发者,那么你一定对git worktree这个命令不陌生。它允许你在同一个仓库…...
多模态模型评估新基准:Rebus Puzzles测试集构建与应用
1. 项目背景与核心价值最近在整理多模态模型评估方法时,发现现有基准测试大多集中在常规的图文匹配任务上,很少有针对复杂视觉推理能力的专项测评。这让我想起小时候玩过的Rebus Puzzles(画谜)——那些用图像组合来暗示词语或短语…...
AI智能体架构解析:多源逻辑引擎与情境同步记忆在交易与学习场景的应用
1. 项目概述:一个为特定目标而生的“数字伙伴”最近在GitHub上看到一个挺有意思的项目,叫“SSC Scholar-Trader Agent”。初看这个名字,你可能觉得有点割裂——“Scholar”(学者)和“Trader”(交易者&#…...
口碑好的底盘养护揭秘
常见汽车底盘问题及危害分析一、底盘异常的典型表现经常用车的朋友可能都遇到过类似情况:方向盘明明回正,车辆却自动偏向一侧,必须用力握紧才能保持直行;轮胎行驶里程不多,但一侧花纹已磨光,另一侧却还很深…...
语音助手DNS查询技能开发:从API集成到智能家居运维实践
1. 项目概述:一个DNS查询技能的诞生最近在折腾智能音箱和家庭自动化,发现一个挺有意思的需求:能不能直接问家里的智能设备,某个网站的DNS解析情况?比如,想知道“我的博客域名解析生效了吗?”或者…...
NGA论坛终极美化指南:如何用开源脚本打造清爽浏览体验
NGA论坛终极美化指南:如何用开源脚本打造清爽浏览体验 【免费下载链接】NGA-BBS-Script NGA论坛增强脚本,给你完全不一样的浏览体验 项目地址: https://gitcode.com/gh_mirrors/ng/NGA-BBS-Script 还在为NGA论坛繁杂的界面而烦恼吗?想…...
开源中国双核战略:解码AI普惠时代的生态密码
当全球AI竞赛进入深水区,技术普惠与商业落地成为检验创新价值的终极标尺。开源中国以"模力方舟"与"口袋龙虾"构建的双核驱动体系,正在改写中国AI生态的发展轨迹——这不仅是一个技术平台的创新,更代表了中国科技企业在AI…...
Git 实战:将 270MB 项目成功推送到 Gitee 遇到的坑
目录 Git 实战:将 270MB 项目成功推送到 Gitee 遇到的坑 问题背景 一、初始化 Git 仓库 1. 创建仓库 2. 配置用户信息 3. 创建 .gitignore 4. 添加并提交 二、连接远程仓库 1. 添加 Gitee 远程仓库 2. 验证远程仓库 三、首次推送失败 1. 尝试推送 2. 错…...
3步解锁《鸣潮》120帧性能飞跃:WaveTools工具箱完全指南
3步解锁《鸣潮》120帧性能飞跃:WaveTools工具箱完全指南 【免费下载链接】WaveTools 🧰鸣潮工具箱 项目地址: https://gitcode.com/gh_mirrors/wa/WaveTools 还在为《鸣潮》的卡顿和帧率限制烦恼吗?是否觉得60帧的游戏体验无法充分发挥…...
计算机视觉怎么选:2026年技术选型生存指南——在学术界与工业界的撕裂地带,找到你的生态位
一、开篇:一个被低估的结构性事实 如果你站在2026年的时间节点上问"计算机视觉怎么选",你真正在问的是:在一场每年膨胀近200亿美元、但人才供给严重错配的技术革命中,我应该把有限的时间押注在哪里? 这不是…...
