js获取几个月前,几周前时间。
生活随笔
收集整理的這篇文章主要介紹了
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获取几个月前,几周前时间。的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 修改文件中的内容,使用fileinput
- 下一篇: 虎记:强大的nth-child(n)伪类