Vue Date 今天的开始时间与结束时间

embedded/2025/3/18 21:12:15/

在 Vue 项目里,要获取今天的开始时间与结束时间,可借助 JavaScript 的 Date 对象来实现。

在 JavaScript 里,date.getFullYear() 是 Date 对象的一个方法,主要用于获取 Date 对象所表示日期的年份,返回值是一个四位数的整数,代表具体的年份。

<template><div><p>今天的开始时间: {{ startOfDay }}</p><p>今天的结束时间: {{ endOfDay }}</p></div>
</template><script>
export default {data() {return {startOfDay: '',endOfDay: ''};},mounted() {// 获取今天的开始时间和结束时间const today = new Date();// 设置开始时间const start = new Date(today);start.setHours(0, 0, 0, 0);// 设置结束时间const end = new Date(today);end.setHours(23, 59, 59, 999);// 格式化时间this.startOfDay = this.formatDate(start);this.endOfDay = this.formatDate(end);},methods: {//用于把 Date 对象格式化为 YYYY-MM-DD HH:MM:SS 的字符串。formatDate(date) {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 `${year}-${month}-${day} ${hours}:${minutes}:${seconds}`;}}
};
</script>

padStart() 是 JavaScript 字符串对象的一个方法,用于在字符串的开头填充指定的字符,直到字符串达到指定的长度。这在需要对字符串进行格式化,使其保持固定长度时非常有用,比如在日期格式化时,确保月份、日期等为两位数。

昨天的开始时间与结束 时间
// 获取当前日期const today = new Date();// 获取昨天的日期const yesterday = new Date(today);yesterday.setDate(yesterday.getDate() - 1);// 设置昨天的开始时间const start = new Date(yesterday);start.setHours(0, 0, 0, 0);// 设置昨天的结束时间const end = new Date(yesterday);end.setHours(23, 59, 59, 999);// 格式化时间this.startOfYesterday = this.formatDate(start);this.endOfYesterday = this.formatDate(end);
获取本周的开始时间与结束时间
 // 获取当前日期const today = new Date();// 获取今天是星期几(0 表示星期日,1 - 6 分别表示星期一到星期六)const dayOfWeek = today.getDay();// 计算本周的第一天(星期一)const startOfWeekDate = new Date(today);startOfWeekDate.setDate(today.getDate() - (dayOfWeek === 0 ? 6 : dayOfWeek - 1));startOfWeekDate.setHours(0, 0, 0, 0);// 计算本周的最后一天(星期日)const endOfWeekDate = new Date(startOfWeekDate);endOfWeekDate.setDate(startOfWeekDate.getDate() + 6);endOfWeekDate.setHours(23, 59, 59, 999);// 格式化时间this.startOfWeek = this.formatDate(startOfWeekDate);this.endOfWeek = this.formatDate(endOfWeekDate);
获取上周的开始时间与结束时间

可以先计算出本周的开始时间,然后在此基础上往前推 7 天得到上周的开始时间,再将上周开始时间加上 6 天得到上周的结束时间,最后分别设置这两个时间的具体时刻(开始时间为 00:00:00,结束时间为 23:59:59.999)。

 // 获取当前日期const today = new Date();// 获取今天是星期几(0 表示星期日,1 - 6 分别表示星期一到星期六)const dayOfWeek = today.getDay();// 计算本周的第一天(星期一)const startOfThisWeek = new Date(today);startOfThisWeek.setDate(today.getDate() - (dayOfWeek === 0 ? 6 : dayOfWeek - 1));// 计算上周的第一天const startOfLastWeekDate = new Date(startOfThisWeek);startOfLastWeekDate.setDate(startOfThisWeek.getDate() - 7);startOfLastWeekDate.setHours(0, 0, 0, 0);// 计算上周的最后一天const endOfLastWeekDate = new Date(startOfLastWeekDate);endOfLastWeekDate.setDate(startOfLastWeekDate.getDate() + 6);endOfLastWeekDate.setHours(23, 59, 59, 999);// 格式化时间this.startOfLastWeek = this.formatDate(startOfLastWeekDate);this.endOfLastWeek = this.formatDate(endOfLastWeekDate);
获取本月的开始时间与结束时间
 // 获取当前日期const today = new Date();// 计算本月的开始时间const start = new Date(today.getFullYear(), today.getMonth(), 1, 0, 0, 0, 0);// 计算下个月的第一天const nextMonthFirstDay = new Date(today.getFullYear(), today.getMonth() + 1, 1);// 本月的最后一天(下个月第一天往前推一天)const lastDay = new Date(nextMonthFirstDay - 1);// 设置结束时间const end = new Date(lastDay);end.setHours(23, 59, 59, 999);// 格式化时间this.startOfMonth = this.formatDate(start);this.endOfMonth = this.formatDate(end);
获取上月的开始时间与结束时间
 // 获取当前日期const today = new Date();// 计算上月的开始时间const start = new Date(today.getFullYear(), today.getMonth() - 1, 1, 0, 0, 0, 0);// 计算本月的第一天const thisMonthFirstDay = new Date(today.getFullYear(), today.getMonth(), 1);// 上月的最后一天(本月第一天往前推一天)const lastDay = new Date(thisMonthFirstDay - 1);// 设置结束时间const end = new Date(lastDay);end.setHours(23, 59, 59, 999);// 格式化时间this.startOfLastMonth = this.formatDate(start);this.endOfLastMonth = this.formatDate(end);
获取当前季度的开始时间和结束时间
 // 获取当前日期const today = new Date();const currentMonth = today.getMonth();// 确定当前季度的起始月份const startMonth = Math.floor(currentMonth / 3) * 3;// 计算当前季度的开始时间const start = new Date(today.getFullYear(), startMonth, 1, 0, 0, 0, 0);// 确定当前季度的结束月份const endMonth = startMonth + 2;// 计算当前季度结束月份的下一个月的第一天const nextMonthFirstDay = new Date(today.getFullYear(), endMonth + 1, 1);// 当前季度的最后一天(下一个月第一天往前推一天)const lastDay = new Date(nextMonthFirstDay - 1);// 设置结束时间const end = new Date(lastDay);end.setHours(23, 59, 59, 999);// 格式化时间this.startOfQuarter = this.formatDate(start);this.endOfQuarter = this.formatDate(end);
获取指定季度的开始时间和结束时间
<template><div><button ="getQuarterTime(2024, 1)">获取 2024 年第一季度时间</button><button ="getQuarterTime(2024, 2)">获取 2024 年第二季度时间</button><button ="getQuarterTime(2024, 3)">获取 2024 年第三季度时间</button><button ="getQuarterTime(2024, 4)">获取 2024 年第四季度时间</button><p v-if="startOfQuarter">指定季度的开始时间: {{ startOfQuarter }}</p><p v-if="endOfQuarter">指定季度的结束时间: {{ endOfQuarter }}</p></div>
</template><script>
export default {data() {return {startOfQuarter: '',endOfQuarter: ''};},methods: {getQuarterTime(year, quarter) {// 计算指定季度的起始月份const startMonth = (quarter - 1) * 3;// 计算指定季度的开始时间const start = new Date(year, startMonth, 1, 0, 0, 0, 0);// 计算指定季度的结束月份const endMonth = startMonth + 2;// 计算指定季度结束月份的下一个月的第一天const nextMonthFirstDay = new Date(year, endMonth + 1, 1);// 指定季度的最后一天(下一个月第一天往前推一天)const lastDay = new Date(nextMonthFirstDay - 1);// 设置结束时间const end = new Date(lastDay);end.setHours(23, 59, 59, 999);// 格式化时间this.startOfQuarter = this.formatDate(start);this.endOfQuarter = this.formatDate(end);},formatDate(date) {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 `${year}-${month}-${day} ${hours}:${minutes}:${seconds}`;}}
};
</script>

http://www.ppmy.cn/embedded/173679.html

相关文章

mysql数据库中多张表导出成excel方式

需求&#xff1a; 用于将mysql数据库中的几百张表导出成excel方式 表中有些字段的值是含有双引号和逗号值&#xff0c;比如json值 表中有些字段是汉字内容 导出的excel要求有表的列名 shell对于含有逗号和双引号的值会错乱分割 数据库中某些字段值是化学符号 import pymysql,o…

浅谈AI落地之-加速训练

前言 曾在游戏世界挥洒创意&#xff0c;也曾在前端和后端的浪潮间穿梭&#xff0c;如今&#xff0c;而立的我仰望AI的璀璨星空&#xff0c;心潮澎湃&#xff0c;步履不停&#xff01;愿你我皆乘风破浪&#xff0c;逐梦星辰&#xff01; 混合精度&#xff1a; FL32是目前模型存…

低空经济安全保障体系构建方案

一、源头安全设计与认证 飞行器安全冗余设计 动力系统双备份:电动垂直起降(eVTOL)飞行器配备双电机、多电池组,单组故障仍可安全返航。轻量化结构材料:采用碳纤维复合材料+蜂窝夹层设计,抗坠毁强度提升30%。适航认证分级:参照民航标准,对载人/载货飞行器实施分级认证(…

Rust + WebAssembly 开发环境搭建指南

一、安装 Rust 工具链 要开始 Rust WebAssembly 开发&#xff0c;你需要安装标准 Rust 工具链&#xff0c;包括 rustup、rustc 和 cargo。 1. 安装 Rust 工具链 Rust 官方提供 rustup 工具来管理 Rust 版本。你可以使用以下命令安装 Rust&#xff1a; curl --proto https -…

游戏引擎学习第163天

我们可以在资源处理器中使用库 因为我们的资源处理器并不是游戏的一部分&#xff0c;所以它可以使用库。我说过我不介意让它使用库&#xff0c;而我提到这个的原因是&#xff0c;今天我们确实有一个选择——可以使用库。 生成字体位图的两种方式&#xff1a;求助于 Windows 或…

本周安全速报(2025.3.11~3.17)

合规速递 01 瑞士出台新规&#xff1a;关基设施遭遇网络攻击需在24小时内上报 原文: https://www.bleepingcomputer.com/news/security/swiss-critical-sector-faces-new-24-hour-cyberattack-reporting-rule/ 新规要求&#xff0c;关键基础设施组织发现网络攻击后&…

【MySQL】多表查询(笛卡尔积现象,联合查询、内连接、左外连接、右外连接、子查询)-通过练习快速掌握法

在DQL的基础查询中&#xff0c;我们已经学过了多表查询的一种&#xff1a;联合查询&#xff08;union&#xff09;。本文我们将系统的讲解多表查询。 笛卡尔积现象 首先&#xff0c;我们想要查询emp表和stu表两个表&#xff0c;按照我们之前的知识栈&#xff0c;我们直接使用…

Qt6.8实现麦克风音频输入音频采集保存wav文件

一.本文目的 实现在Qt中接收麦克风数据并保存为WAV文件,使用QAudioInput来录音,并使用QFile来保存数据到WAV文件。 开发环境:QT6.8 本文用极简代码实现,核心代码只需不到100行。 二.代码实现