欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程资源 > 编程问答 >内容正文

编程问答

js获取几个月前,几周前时间。

发布时间:2025/3/15 编程问答 50 豆豆
生活随笔 收集整理的这篇文章主要介绍了 js获取几个月前,几周前时间。 小编觉得挺不错的,现在分享给大家,帮大家做个参考.
/***  DK 命名空间  防止全局变量污染*/var DK = {} ;/*** 获取前几个月,默认为一个月,当前时间* @author duke* @date 格式为yyyy-mm-dd的日期,如:2014-01-25*/DK.getPreMonth = function() {var obj = DK.init(arguments);var dtObj = DK.sptDtStr(obj.dtStr);//如果大于12个月,先算年if (obj.num >= 12) {dtObj.year -= parseInt(obj.num / 12);}//年计算结束后,计算月,月如果是负数,年减1,月加12.dtObj.month -= obj.num % 12;if (dtObj.month <= 0) {dtObj.year--;dtObj.month += 12;}//获取该月组后一天,也就是天数。var lastDay = new Date(dtObj.year, dtObj.month, 0).getDate();if (dtObj.day > lastDay) {dtObj.day = lastDay;}return dtObj.year + '-' + dtObj.month + '-' + dtObj.day;}/*** 获取前几天,默认为一天,当前时间*/DK.getPreDay = function() {var obj = DK.init(arguments);var dtObj = DK.sptDtStr(obj.dtStr);var dtTime = new Date(dtObj.year, dtObj.month - 1, dtObj.day).getTime();return DK.dtToStr(new Date(dtTime - obj.num * 86400000));}/*** 获取前几周,默认为一周,当前时间num,date*/DK.getPreWeek = function() {var obj = DK.init(arguments);return DK.getPreDay(7 * obj.num, obj.dtStr);}/*** 日期类型转换为字符串类型,默认当前日期*/DK.dtToStr = function(date) {date = date || new Date();return date.getFullYear() + '-' + (date.getMonth() + 1) + '-' + date.getDate();}/*** 格式化日期字符串*/DK.formatdtStr = function(date) {var dtObj = DK.sptDtStr(date);//日月补0if (dtObj.month < 10) {dtObj.month = '0' + dtObj.month;}if (dtObj.day < 10) {dtObj.day = '0' + dtObj.day;}return dtObj.year + '-' + dtObj.month + '-' + dtObj.day;}/*** 初始化参数*/DK.init = function(arguments) {//数量和日期字符串var obj = {num:1,dtStr:(function(){return DK.dtToStr();})()}if (arguments.length === 1) {var arg = arguments[0];if (arg instanceof Date) {obj.dtStr = DK.dtToStr(arg);} else if(typeof arg == 'string') {obj.dtStr = arg;} else if(typeof arg == 'number') {obj.num = arg;} else {throw new Error('arg type error');}} else if(arguments.length === 2) {var arg1 = arguments[0], arg2 = arguments[1];if ((arg1 instanceof Date || typeof arg1 == 'string') && typeof arg2 == 'number') {if(typeof arg1 == 'string'){obj.dtStr = arg1;}else{obj.dtStr = DK.dtToStr(arg1);}obj.num = arg2;} else if((arg2 instanceof Date || typeof arg2 == 'string') && typeof arg1 == 'number') {if (typeof arg2 == 'string') {obj.dtStr = arg2;} else {obj.dtStr = DK.dtToStr(arg2);}obj.num = arg1;} else {throw new Error('arguments type error');}} else if(arguments.length > 2) {throw new Error('too many arguments');}return obj;}/*** 分割日期字符串*/DK.sptDtStr = function(dtStr) {var dtObj = {};//日期对象var dtArr = dtStr.split('-');dtObj.year = parseInt(dtArr[0]); //获取当前日期的年份dtObj.month = parseInt(dtArr[1]); //获取当前日期的月份dtObj.day = parseInt(dtArr[2]); //获取当前日期的日return dtObj;}

 

//该js文件主要是现了,无论是几个参数(两个以内),无论是参数顺序,都可以获取以前的时间。

//主要是在默认值方面做了大量的改进,虽说存在许多的不必要,但是做基础框架不就是多做一点事情吗

//当然这里面肯定还有许多不足,大家一起交流。 

 

转载于:https://www.cnblogs.com/shalf/p/5118325.html

总结

以上是生活随笔为你收集整理的js获取几个月前,几周前时间。的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。