Vue 49 ,ECharts 5 ,JavaScript获取时间,获取前6年时间,获取前7天时间,展示Echart( js中的String()、padStart()、new Date()方法 )

本文介绍JavaScript中new Date()方法的基本用法及如何获取当前时间的各种组件,并提供获取指定天数或年份前日期的实用函数。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

前言
一. new Date()
1. 相关方法
2. 打印查看​编辑
二. 操作实例 
1. 操作实例ONE
1. 逻辑函数
2. 函数调用
3. 注意事项
2. 操作实例TWO
3. 操作实例THREE

前言

我们在写 Echarts 的时候,难免会用到JavaScript中的 new Date() 方法,用来获取时间。new Date() 是 JavaScript 中用于创建日期对象的构造函数。它允许开发者创建表示特定时间点的日期和时间,支持多种格式和方法,使得处理时间和日期变得方便。

一. new Date()

1. 相关方法

关于new Date()的一些 JavaScript 方法,请看

  const nowDate = new Date();
  //中国标准时间
  console.log("1、", nowDate);  
  //获取完整的年份(4位,1970-????)
  console.log("2、", nowDate.getFullYear()); 
  //获取当前月份(0-11,0代表1月)
  console.log("3、", nowDate.getMonth());
  //获取当前日(1-31)
  console.log("4、", nowDate.getDate());
  //获取当前星期X(0-6,0代表星期天)
  console.log("5、", nowDate.getDay());
  //获取当前时间(从1970.1.1开始的毫秒数),可以理解为时间戳
  console.log("6、", nowDate.getTime());
  //获取当前小时数(0-23)
  console.log("7、", nowDate.getHours());
  //获取当前分钟数(0-59)
  console.log("8、", nowDate.getMinutes());
  //获取当前秒数(0-59)
  console.log("9、", nowDate.getSeconds());
  //获取当前毫秒数(0-999)
  console.log("10、", nowDate.getMilliseconds());
  //获取当前日期
  console.log("11、", nowDate.toLocaleDateString());
  //获取当前时间
  console.log("12、", nowDate.toLocaleTimeString());
  //获取日期与时间
  console.log("13、", nowDate.toLocaleString());

2. 打印查看


二. 操作实例 

1. 操作实例ONE

1. 逻辑函数

new Date()操作实例,获取前一段时间的日期,请看

// 定义一个函数 getPreviousDate,该函数接受一个参数 numOfDays,表示要回溯的天数
function getPreviousDate(numOfDays) {
  // 创建一个新的 Date 对象,表示当前日期和时间
  var date = new Date();
  // 使用 setDate 方法设置新的日期,减去 numOfDays 天
  // 注意:setDate 方法接受的值是从 1 开始的,因此这里实际上是获取过去的日期
  date.setDate(date.getDate() - numOfDays);
  // 获取新的日期中的年份部分
  var year = date.getFullYear();
  // 获取新的日期中的月份部分,注意 JavaScript 中月份是从 0 开始的,所以需要加 1
  var month = date.getMonth() + 1;
  // 获取新的日期中的日期部分
  var day = date.getDate();
  // 返回格式化的日期字符串,例如 "2023-09-15"
  // 注意这里没有检查 month 和 day 是否小于 10 并在前面补 0,
  // 如果需要标准的日期格式,应该加上相应的逻辑
  return year + "-" + month + "-" + day;
}


// 没有注释版
function getPreviousDate(numOfDays) {
  var date = new Date();
  date.setDate(date.getDate() - numOfDays);
  var year = date.getFullYear();
  var month = date.getMonth() + 1;
  var day = date.getDate();
  return year + "-" + month + "-" + day;
}

如果你希望返回的日期格式总是 "YYYY-MM-DD" 形式(即月份和日期不足两位时前面补零),可以稍微修改一下返回的部分:

// ...
  // 返回格式化的日期字符串,例如 "2023-09-15"
  // 这里添加了对 month 和 day 的处理,确保它们都是两位数
  return year + "-" + (month < 10 ? '0' + month : month)
 + "-" + (day < 10 ? '0' + day : day);
// ...

这样,即使月份或日期是个位数,也会正确地显示为 "00" 形式。

2. 函数调用

函数调用,获取前7天的日期,请看

  var previousDate = getPreviousDate(7);
  console.log(previousDate); 
  // 输出:2023-4-3

上述代码中 getPreviousDate 函数用于获取前一段时间的日期,参数 numOfDays 表示需要获取的天数,然后利用 Date 对象的 setDate 方法来实现日期的计算,减去 numOfDays 天数即可获得前一段时间的日期,最后将年月日拼接成字符串并返回即可。假设今天是 2024年11月20日,那么调用 getPreviousDate(7) 会得到:

2024-11-13

3. 注意事项

1. 注意这里用到了setDate()方法,该方法用于实现日期的相加减,它接收一个整数,如果这个整数大于当前时间对象中月份的日期上线,则自动往前进位,余数为下个月的日期。

2. setDate()方法中的参数表示一个月中的一天的一个数值(1 ~ 31),0 为上一个月的最后一天,-1 为上一个月最后一天之前的一天,如果当月有 31 天,32 为下个月的第一天,如果当月有 30 天,32 为下一个月的第二天。


2. 操作实例TWO

获取前七天时间,前七天的所有时间,包括今天

function getLast7Days() {
  const dates = [];  // 用于存储日期的数组
  const today = new Date(); // 获取当前日期

  // 遍历过去7天
  for (let i = 1; i <= 7; i++) {  // 从1开始,避免获取今天
    const date = new Date(today); // 创建当前日期的副本
    date.setDate(today.getDate() - i); // 设置为当前日期减去i天,即获取过去的日期
    const year = date.getFullYear(); // 获取年份
    const month = String(date.getMonth() + 1).padStart(2, "0"); // 获取并补零格式化月份
    const day = String(date.getDate()).padStart(2, "0"); // 获取并补零格式化日期
    const formattedDate = `${year}-${month}-${day}`; // 格式化日期为 YYYY-MM-DD
    dates.push(formattedDate); // 将格式化后的日期添加到数组中
  }

  return dates.reverse(); // 将数组反转,使日期从最早到最近排序
}

const last7Days = getLast7Days();  // 获取过去7天的日期
console.log(last7Days); // 输出过去7天的日期数组

示例输出:

假设今天是 2024年11月21日,调用 getLast7Days() 会输出如下数组:


[ "2024-11-14", "2024-11-15", "2024-11-16", "2024-11-17", "2024-11-18", 
"2024-11-19", "2024-11-20" ]

假设只要月日(Vue2):

    data() {
        return {
            sevenDays: [],
        };
    },
       

    getLast7Days() {
            const dates = []; // 用于存储日期的数组
            const today = new Date(); // 获取当前日期

            // 遍历过去 7 天(不包括今天)
            for (let i = 1; i <= 7; i++) {
                const date = new Date(today); // 创建日期副本
                date.setDate(today.getDate() - i); // 当前日期减去 i 天

                const month = String(date.getMonth() + 1).padStart(2, "0"); // 月(补零)
                const day = String(date.getDate()).padStart(2, "0"); // 日(补零)

                dates.push(`${month}-${day}`); // 直接拼接成 "MM-DD"
            }
            // 反转数组,让日期从最早到最近
            this.sevenDays = dates.reverse();
            console.log(this.sevenDays, 1)
        },

示例输出:

['08-07', '08-08', '08-09', '08-10', '08-11', '08-12', '08-13']

过程描述:

  1. 用于存储日期的数组。
  2. 获取当前日期。
  3. 遍历过去 7 天(不含今天)。
  4. 创建当前日期的副本。
  5. 设置为当前日期减去 i 天,即获取过去的日期。
  6. 获取年份。
  7. 获取并补零格式化月份。
  8. 获取并补零格式化日期。
  9. 格式化日期为 YYYY-MM-DD
  10. 将格式化后的日期添加到数组中。

这里的 String(...)  方法的作用:

将数字类型的值转换为字符串类型。确保后续操作支持字符串方法。
因为padStart 是字符串方法,不能直接在数字上调用,所以需要将数字转换为字符串。

这里padStart(2, "0")方法作用:

目标长度是 2,表示字符串的总长度应为两位。
用 "0" 作为填充字符。如果字符串长度小于 2,会在左侧补 "0"。
如果字符串已经是两位或更长,则不做任何改变。


String() 方法
String() 是一个全局函数,用于将任何值转换为字符串类型。

padStart() 方法
padStart() 是字符串的方法,用于通过在字符串的开头填充指定字符,使其达到指定长度。

方法介绍:

String() 方法
String() 是一个全局函数,用于将任何值转换为字符串类型。

padStart() 方法
padStart() 是字符串的方法,用于通过在字符串的开头填充指定字符,使其达到指定长度。


3. 操作实例THREE

获取前6年时间,请看

 function beforeSixYear() {
    const date = new Date().getUTCFullYear();
    const yearList = [];
    for (let i = 1; i <= 6; i++) {
      // console.log(i);
      yearList.push(date - i);
    }
    return yearList;
 };
 const sixYear = beforeSixYear()
 console.log(sixYear);
 // 输出: [2022, 2021, 2020, 2019, 2018, 2017]

创作不易,感觉有用,就一键三连,感谢(●'◡'●)

<think>首先,用户的问题是:在Vue开发的微信小程序中获取现实时间。用户指定了“Vue开发的微信小程序”,这可能是基于Vue框架的小程序,如Uni-app或类似工具。 从系统级指令中,我需要: - 所有行内数学表达式使用$...$格式。 - 独立公式使用$$...$$格式并单独成段。 - LaTeX语法正确。 - 使用中文回答。 - 生成相关问题。 - 回答中引用的段落末尾自然地添加引用标识,如[^1]。 - 回答结构清晰,帮助用户逐步解决问题。 - 参考提供的站内引用。 提供的引用: - [^1]: 关于小程序的数据绑定和显示隐藏元素。 - [^2]: 微信小程序获取时间方法。 - [^3]: 关于获取位置和权限设置。 - [^4]: 关于一个宠物店管理系统,涉及多种功能。 用户的问题是关于获取时间,所以引用[^2]最相关,因为它直接给出了微信小程序获取时间方法。引用[^2]说:console.log(new Date().toISOString().substring(0, 10)); 等,用于获取。 用户指定了“Vue开发的微信小程序”,所以我需要确保方法适用于Vue框架下的小程序开发,比如使用Uni-app或类似工具。 在回答中: - 使用中文。 - 结构清晰:逐步解决问题。 - 生成相关问题。 - 添加引用标识。 步骤: 1. **理解需求**:用户想在Vue开发的微信小程序中获取时间。 2. **解决方案**:在微信小程序中,获取时间可以使用JavaScriptDate对象。在Vue框架下(如Uni-app),代码类似。 3. **具体实现**: - 在Vue组件中,使用data属性存储时间。 - 在methods中定义函数获取时间。 - 在生命周钩子(如mounted)中调用该函数。 4. **代码示例**:提供一个简单的Vue组件代码。 5. **引用**:自然地引用相关部分。引用[^2]提供了获取时间方法,所以我可以在解释时引用它。 6. **生成相关问题**:在回答末尾添加相关问题。 回答结构: - 开头:确认问题。 - 步骤:逐步解释如何在Vue小程序中实现。 - 代码示例:提供代码块。 - 注意事项:如权限或格式化。 - 结尾:生成相关问题。 引用[^2]的内容: - console.log(new Date().toISOString().substring(0, 10)); // 当前日 YYYY-MM-DD - console.log(new Date().toJSON().substring(0, 10)); // 相同 - console.log(new Date().toLocaleDateString()); // YYYY/MM/DD 在回答中,我可以引用这个来展示如何获取时间。 对于Vue小程序: - 假设使用Uni-app,因为它支持Vue开发小程序。 - 在Uni-app中,代码结构类似Vue。 代码示例: - 在Vue组件的data中定义时间变量。 - 在methods中创建方法获取时间。 - 在mounted钩子中调用方法。 例如: ```javascript export default { data() { return { currentTime: '' } }, mounted() { this.getCurrentTime(); }, methods: { getCurrentTime() { // 获取时间 const now = new Date(); // 格式化为字符串,例如 YYYY-MM-DD HH:mm:ss this.currentTime = now.toLocaleString(); // 或者自定义格式 } } } ``` 在模板中显示: ```html <view>{{ currentTime }}</view> ``` 引用[^2]时,自然地添加标识。 生成相关问题: - 基于主题,如格式化时间、处理时区、权限等。 - 例如: 1. 如何格式化当时间为特定格式? 2. 如何处理不同时区的当时间? 3. 在微信小程序中获取时间需要权限吗? 确保LaTeX:用户的问题不涉及数学,所以可能不需要LaTeX。但如果有数学表达式,使用$...$。这里可能不需要。 最终回答框架: 1. 介绍:在Vue开发的微信小程序中获取时间很简单,使用JavaScriptDate对象。 2. 步骤: - 在Vue组件中定义数据属性。 - 创建方法获取时间。 - 在生命周钩子中调用。 3. 代码示例。 4. 注意事项:如权限(引用[^3]涉及位置权限,但时间不需要特殊权限)。 5. 引用:在解释时添加[^2]。 6. 相关问题。</think>### Vue微信小程序中获取时间方法Vue开发的微信小程序(如基于Uni-app框架)中,获取时间可以通过JavaScript的`Date`对象实现。以下是详细步骤和代码示例,确保方法兼容微信小程序环境: #### 步骤1: 在Vue组件中定义数据属性 在组件的`data`中初始化一个变量存储时间值: ```javascript export default { data() { return { currentTime: '', // 用于存储格式化后的时间 }; }, }; ``` #### 步骤2: 创建获取时间方法 在`methods`中添加函数处理时间获取和格式化。参考微信小程序的JavaScript API[^2]: ```javascript methods: { getCurrentTime() { // 使用Date对象获取时间 const now = new Date(); // 格式化时间(示例:YYYY-MM-DD HH:mm:ss) const year = now.getFullYear(); const month = String(now.getMonth() + 1).padStart(2, '0'); const day = String(now.getDate()).padStart(2, '0'); const hours = String(now.getHours()).padStart(2, '0'); const minutes = String(now.getMinutes()).padStart(2, '0'); const seconds = String(now.getSeconds()).padStart(2, '0'); this.currentTime = `${year}-${month}-${day} ${hours}:${minutes}:${seconds}`; }, }, ``` #### 步骤3: 在生命周钩子中调用方法 在`mounted`钩子中触发时间获取,确保组件加载时更新: ```javascript mounted() { this.getCurrentTime(); }, ``` #### 步骤4: 在模板中显示时间 在WXML模板中使用数据绑定: ```html <view>当时间:{{ currentTime }}</view> ``` #### 注意事项 1. **权限问题**:获取时间无需特殊权限,但若涉及位置信息(如时区),需检查用户授权[^3]。 2. **格式化选项**: - `new Date().toLocaleString()`:返回本地格式时间(如`2023/10/15 14:30:00`)[^2] - `new Date().toISOString().substring(0, 10)`:返回ISO日(如`2023-10-15`)[^2] 3. **性能优化**:频繁更新时间可使用`setInterval`,但需在`beforeDestroy`钩子中清除定时器。 #### 完整组件示例 ```javascript export default { data() { return { currentTime: '', }; }, mounted() { this.getCurrentTime(); // 可选:每秒更新一次 this.timer = setInterval(() => { this.getCurrentTime(); }, 1000); }, beforeDestroy() { clearInterval(this.timer); // 清除定时器 }, methods: { getCurrentTime() { const now = new Date(); this.currentTime = now.toLocaleString(); // 简单格式 }, }, }; ``` ### 相关问题 1. 如何在微信小程序中将时间格式化为`YYYYMM月DD日`? 2. Vue小程序中如何实现倒计时功能? 3. 获取用户位置时如何处理权限拒绝的情况[^3]? [^1]: 微信小程序的数据绑定和元素控制方法。 [^2]: 微信小程序获取时间JavaScript API实现。 [^3]: 处理用户位置权限的授权逻辑。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

北城笑笑

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值