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获取时间内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

最新评论