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获取时间内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
相关文章
郁闷!ionic中获取ng-model绑定的值为undefined如何解决
很是郁闷!ionic中获取ng-model绑定的值为undefined,如何解决?2016-08-08JavaScript中undefined和is not defined的区别与异常处理
这篇文章主要给大家介绍了关于JavaScript中undefined和is not defined的区别与异常处理的相关资料,文中通过实例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下2022-03-03js前端身份证号、手机号脱敏、手机号、身份证号加密处理(ios浏览器兼容性问题)
这篇文章主要给大家介绍了关于js前端身份证号、手机号脱敏、手机号、身份证号加密处理的相关资料,还介绍了ios浏览器兼容性问题,文中通过实例代码介绍的非常详细,需要的朋友可以参考下2022-11-11对象无length属性时IE6/IE7中无法将其转换成伪数组(ArrayLike)
对象无length属性时IE6/7中无法将其转换成伪数组(ArrayLike) 的解决方法,需要的朋友可以参考下。2011-07-07
最新评论