当前位置:   article > 正文

js获取时间(二) 年月日时间,各种格式的时间_javascript循环输出年份和月份:为了用户能够方便地选择年、月、日等日期方面的信

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);
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52

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

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);
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24

这个封装的方案定义了一个名为 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);
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25

这个封装的方案定义了一个名为 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);
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17

这个封装的方案定义了一个名为 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);
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43

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

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

使用场景和优缺点

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

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

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

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

优点:

  • 方便:使用上月、本月、本季度、上季度和年度的开始和结束时间,可以方便地获取相应的时间范围,避免手动计算和输入时间范围的麻烦。
  • 精确:根据当前日期动态计算时间范围,确保获取的时间范围准确无误。
  • 可复用:封装成方法后,可以在不同的场景中反复使用,提高代码的复用性和效率。

缺点:

  • 依赖于系统时间:获取的时间范围依赖于系统时间,如果系统时间不准确或被修改,可能会导致获取的时间范围不准确。
  • 逻辑复杂性:计算上月、本月、本季度、上季度和年度的开始和结束时间涉及一定的逻辑复杂性,需要考虑月份和季度的边界情况,可能需要处理一些特殊情况的逻辑。

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

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Cpp五条/article/detail/292306
推荐阅读
相关标签
  

闽ICP备14008679号