JavaScript实现获取年月日时间的方法总结

 更新时间:2023年08月08日 09:08:38   作者:一花一world  
这篇文章主要为大家学习介绍了JavaScript如何实现获取年月日以及各种格式的时间,文中的示例代码简洁易懂,感兴趣的小伙伴可以了解一下

首先介绍时间的获取

// 获取当前时间
let currentTime = new Date();
// 获取年份
let year = currentTime.getFullYear();
// 获取月份(注意月份是从0开始计数的,所以需要加1)
let month = currentTime.getMonth() + 1;
// 获取日期
let day = currentTime.getDate();
// 获取小时
let hours = currentTime.getHours();
// 获取分钟
let minutes = currentTime.getMinutes();
// 获取秒数
let seconds = currentTime.getSeconds();
// 获取毫秒数
let milliseconds = currentTime.getMilliseconds();
// 格式化时间为 YYYY-MM-DD
let formattedDate = `${year}-${month.toString().padStart(2, '0')}-${day.toString().padStart(2, '0')}`;
// 格式化时间为 HH:MM:SS
let formattedTime = `${hours.toString().padStart(2, '0')}:${minutes.toString().padStart(2, '0')}:${seconds.toString().padStart(2, '0')}`;
// 格式化时间为 YYYY-MM-DD HH:MM:SS
let formattedDateTime = `${formattedDate} ${formattedTime}`;
// 格式化时间为 MM/DD/YYYY
let formattedDateUS = `${month.toString().padStart(2, '0')}/${day.toString().padStart(2, '0')}/${year}`;
// 格式化时间为 HH:MM AM/PM
let formattedTime12Hour = `${hours % 12 || 12}:${minutes.toString().padStart(2, '0')} ${hours < 12 ? 'AM' : 'PM'}`;
console.log('当前时间:', currentTime);
console.log('年份:', year);
console.log('月份:', month);
console.log('日期:', day);
console.log('小时:', hours);
console.log('分钟:', minutes);
console.log('秒数:', seconds);
console.log('毫秒数:', milliseconds);
console.log('格式化日期:', formattedDate);
console.log('格式化时间:', formattedTime);
console.log('格式化日期时间:', formattedDateTime);
console.log('格式化日期(美国格式):', formattedDateUS);
console.log('格式化12小时制时间:', formattedTime12Hour);

获取本月和上月的开始和结束日期

function getMonthDates() {
  let today = new Date();
  let year = today.getFullYear();
  let month = today.getMonth();
  let startOfMonth = new Date(year, month, 1);
  let endOfMonth = new Date(year, month + 1, 0);
  let startOfLastMonth = new Date(year, month - 1, 1);
  let endOfLastMonth = new Date(year, month, 0);
  return {
    startOfMonth,
    endOfMonth,
    startOfLastMonth,
    endOfLastMonth,
  };
}
// 调用函数获取本月和上月的日期范围
let monthDates = getMonthDates();
console.log('本月的开始日期:', monthDates.startOfMonth);
console.log('本月的结束日期:', monthDates.endOfMonth);
console.log('上月的开始日期:', monthDates.startOfLastMonth);
console.log('上月的结束日期:', monthDates.endOfLastMonth);

这个封装的方案定义了一个名为 getMonthDates 的函数,该函数根据当前日期获取本月和上月的开始和结束日期,并返回一个包含这些日期的对象。然后,通过调用 getMonthDates 函数来获取日期范围,并将结果打印输出。

这些封装方案可以方便地获取本月和上月的日期范围,可以根据需要将其集成到你的项目中。

要获取本季度和上季度的开始和结束日期

可以使用以下封装方案:

function getQuarterDates() {
  let today = new Date();
  let year = today.getFullYear();
  let month = today.getMonth();
  let quarter = Math.floor(month / 3) + 1;
  let startOfQuarter = new Date(year, (quarter - 1) * 3, 1);
  let endOfQuarter = new Date(year, quarter * 3, 0);
  let startOfLastQuarter = new Date(year, (quarter - 2) * 3, 1);
  let endOfLastQuarter = new Date(year, (quarter - 1) * 3, 0);
  return {
    startOfQuarter,
    endOfQuarter,
    startOfLastQuarter,
    endOfLastQuarter,
  };
}
// 调用函数获取本季度和上季度的日期范围
let quarterDates = getQuarterDates();
console.log('本季度的开始日期:', quarterDates.startOfQuarter);
console.log('本季度的结束日期:', quarterDates.endOfQuarter);
console.log('上季度的开始日期:', quarterDates.startOfLastQuarter);
console.log('上季度的结束日期:', quarterDates.endOfLastQuarter);

这个封装的方案定义了一个名为 getQuarterDates 的函数,该函数根据当前日期获取本季度和上季度的开始和结束日期,并返回一个包含这些日期的对象。然后,通过调用 getQuarterDates 函数来获取日期范围,并将结果打印输出。

要获取上一年的开始和结束日期,可以使用以下封装方案:

function getLastYearDates() {
  let today = new Date();
  let year = today.getFullYear();
  let startOfYear = new Date(year - 1, 0, 1);
  let endOfYear = new Date(year - 1, 11, 31);
  return {
    startOfYear,
    endOfYear,
  };
}
// 调用函数获取上一年的日期范围
let lastYearDates = getLastYearDates();
console.log('上一年的开始日期:', lastYearDates.startOfYear);
console.log('上一年的结束日期:', lastYearDates.endOfYear);

这个封装的方案定义了一个名为 getLastYearDates 的函数,该函数根据当前日期获取上一年的开始和结束日期,并返回一个包含这些日期的对象。然后,通过调用 getLastYearDates 函数来获取日期范围,并将结果打印输出。

这些封装方案可以方便地获取本季度、上季度以及上一年的日期范围,可以根据需要将其集成到你的项目中。

整体封装

以下是一个封装了获取上月、本月、本季度、上季度和年度的开始和结束时间的方法:

function getDateRange() {
  let today = new Date();
  let year = today.getFullYear();
  let month = today.getMonth();
  let quarter = Math.floor(month / 3);
  let startOfMonth = new Date(year, month, 1);
  let endOfMonth = new Date(year, month + 1, 0);
  let startOfLastMonth = new Date(year, month - 1, 1);
  let endOfLastMonth = new Date(year, month, 0);
  let startOfQuarter = new Date(year, quarter * 3, 1);
  let endOfQuarter = new Date(year, quarter * 3 + 3, 0);
  let startOfLastQuarter = new Date(year, (quarter - 1) * 3, 1);
  let endOfLastQuarter = new Date(year, quarter * 3, 0);
  let startOfYear = new Date(year, 0, 1);
  let endOfYear = new Date(year, 11, 31);
  return {
    startOfMonth,
    endOfMonth,
    startOfLastMonth,
    endOfLastMonth,
    startOfQuarter,
    endOfQuarter,
    startOfLastQuarter,
    endOfLastQuarter,
    startOfYear,
    endOfYear,
  };
}
// 调用函数获取日期范围
let dateRange = getDateRange();
console.log('本月的开始日期:', dateRange.startOfMonth);
console.log('本月的结束日期:', dateRange.endOfMonth);
console.log('上月的开始日期:', dateRange.startOfLastMonth);
console.log('上月的结束日期:', dateRange.endOfLastMonth);
console.log('本季度的开始日期:', dateRange.startOfQuarter);
console.log('本季度的结束日期:', dateRange.endOfQuarter);
console.log('上季度的开始日期:', dateRange.startOfLastQuarter);
console.log('上季度的结束日期:', dateRange.endOfLastQuarter);
console.log('本年度的开始日期:', dateRange.startOfYear);
console.log('本年度的结束日期:', dateRange.endOfYear);

这个封装的方法定义了一个名为 getDateRange 的函数,该函数根据当前日期获取上月、本月、本季度、上季度和年度的开始和结束时间,并返回一个包含这些时间的对象。然后,通过调用 getDateRange 函数来获取日期范围,并将结果打印输出。

这个封装方案可以方便地获取上月、本月、本季度、上季度和年度的开始和结束时间,可以根据需要将其集成到你的项目中。

使用场景和优缺点

上月、本月、本季度、上季度和年度的开始和结束时间可以在各种场景下使用,特别是与时间相关的数据分析、报表生成和业务逻辑计算等方面。以下是一些常见的使用场景:

数据分析和报表生成:在数据分析和报表生成过程中,经常需要按照时间范围进行数据筛选和计算。使用上月、本月、本季度、上季度和年度的开始和结束时间可以方便地获取对应的时间范围,从而准确地提取和计算相应的数据。

业务逻辑计算:在一些业务逻辑计算中,需要根据时间范围进行特定的计算和判断。例如,统计上月销售额、计算本季度的利润等。使用上月、本月、本季度、上季度和年度的开始和结束时间可以方便地获取相应的时间范围,从而进行业务逻辑计算。

时间过滤和查询:在数据库查询和数据筛选中,经常需要根据时间范围进行数据过滤和查询。使用上月、本月、本季度、上季度和年度的开始和结束时间可以方便地构建查询条件,从而获取符合时间范围要求的数据。

优点:

方便:使用上月、本月、本季度、上季度和年度的开始和结束时间,可以方便地获取相应的时间范围,避免手动计算和输入时间范围的麻烦。

精确:根据当前日期动态计算时间范围,确保获取的时间范围准确无误。

可复用:封装成方法后,可以在不同的场景中反复使用,提高代码的复用性和效率。

缺点:

依赖于系统时间:获取的时间范围依赖于系统时间,如果系统时间不准确或被修改,可能会导致获取的时间范围不准确。

逻辑复杂性:计算上月、本月、本季度、上季度和年度的开始和结束时间涉及一定的逻辑复杂性,需要考虑月份和季度的边界情况,可能需要处理一些特殊情况的逻辑。

综上所述,上月、本月、本季度、上季度和年度的开始和结束时间在数据分析、报表生成和业务逻辑计算等场景中非常有用,可以方便地获取对应的时间范围。但需要注意系统时间的准确性和处理逻辑复杂性。

到此这篇关于JavaScript实现获取年月日时间的方法总结的文章就介绍到这了,更多相关JavaScript获取时间内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 十大热门的JavaScript框架和库

    十大热门的JavaScript框架和库

    这篇文章主要为大家详细介绍了十大热门的JavaScript框架和库,前端必备,感兴趣的小伙伴们可以参考一下
    2017-03-03
  • layui 实现加载动画以及非真实加载进度的方法

    layui 实现加载动画以及非真实加载进度的方法

    今天小编就为大家分享一篇layui 实现加载动画以及非真实加载进度的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-09-09
  • JavaScript实现数字格式化的示例详解

    JavaScript实现数字格式化的示例详解

    在处理数字时,为了提高可读性,我们通常会将整数部分的数字以千分位或百分位分隔,本文将详细介绍如何使用JavaScript来实现数字的千分位和百分位分隔,需要的可以参考下
    2024-04-04
  • 原生js 封装get ,post, delete 请求的实例

    原生js 封装get ,post, delete 请求的实例

    下面小编就为大家带来一篇原生js 封装get ,post, delete 请求的实例。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-08-08
  • MvcPager分页控件 适用于Bootstrap

    MvcPager分页控件 适用于Bootstrap

    这篇文章主要为大家详细介绍了MvcPager分页控件,修改后适用于Bootstrap,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-06-06
  • 如何利用模板将HTML从JavaScript中抽离

    如何利用模板将HTML从JavaScript中抽离

    这篇文章主要为大家详细介绍了利用模板将HTML从JavaScript中抽离的相关资料,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2016-10-10
  • ES6使用 Array.includes 处理多重条件用法实例分析

    ES6使用 Array.includes 处理多重条件用法实例分析

    这篇文章主要介绍了ES6使用 Array.includes 处理多重条件用法,结合实例形式分析了Array.includes基本功能、原理及处理多重条件相关操作技巧,需要的朋友可以参考下
    2020-03-03
  • JS只能输入正整数的简单实例

    JS只能输入正整数的简单实例

    下面小编就为大家带来一篇JS只能输入正整数的简单实例。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-10-10
  • 原生js通过一行代码实现简易轮播图

    原生js通过一行代码实现简易轮播图

    这篇文章主要介绍了原生js一行代码实现简易轮播图功能,本文通过实例代码给大家介绍的非常详细,需要的朋友可以参考下
    2019-06-06
  • js高精度计算decimal.js库用法demo

    js高精度计算decimal.js库用法demo

    这篇文章主要给大家介绍了关于js高精度计算decimal.js库用法的相关资料,decimal.js是使用的二进制来计算的,所以能解决js的精度问题,文中通过代码介绍的非常详细,需要的朋友可以参考下
    2023-11-11

最新评论