精华内容
下载资源
问答
  • 获取指定日期前或者指定间隔时间代码 function getNowFormatDate(sdate,interval,caret) {  var patt1 = /^\d{4}-([0-1]?[0-9])-([0-3]?[0-9])$/; //判断输入的日期是否符合格式正则表达式  i...

       今天做项目遇到了,获取相对于当前日期前30天的时间,结合网上资料,做了一份整理。

    一.获取指定日期前或者后指定间隔时间代码

    function getNowFormatDate(sdate,interval,caret) {
        var patt1 =  /^\d{4}-([0-1]?[0-9])-([0-3]?[0-9])$/;  //判断输入的日期是否符合格式正则表达式
        if(!(sdate && typeof(sdate) == "string" &&  patt1.test(sdate))){
            sdate = new Date(); //不满足日期的则使用当前年月日
        }
        interval = isNaN(parseInt(interval)) ? 0 : parseInt(interval);//若没有输入间隔,则使用当前日
      caret = (caret && typeof(caret) == "string") ? caret : "";
        var gdate = new Date(sdate).getTime();//获取指定年月日
        gdate = gdate + 1000*60*60*24*interval; //加减相差毫秒数
        var speDate = new Date(gdate);//获取指定好毫秒数时间
        var preYear = speDate.getFullYear();
        var preMonth = speDate.getMonth() + 1;
        var preDay = speDate.getDate();
        preMonth = (preMonth < 10) ? ("0" + preMonth) :preMonth;
        preDay = (preDay < 10) ? ("0" + preDay) :preDay;
        var preDate =  preYear + caret +  preMonth + caret + preDay;
        return preDate;
    }

    调用例子:  获取当天日期     getNowFormatDate("",0,"-"); 结果为"2018-09-18";

                        获取前一天日期  getNowFormatDate("2018-03-01",-1,"-"); 结果为"2018-02-18";

                        获取后一天日期  getNowFormatDate("2018-02-28",1,"-"); 结果为"2018-03-01"; 

                        获取前一周日期  getNowFormatDate("2018-03-01",-7,"-"); 结果为"2018-02-22";

                        获取后一周日期  getNowFormatDate("2018-03-01",7,"-"); 结果为"2018-03-08";

                        获取前30天日期  getNowFormatDate("2018-09-18",-30,"-"); 结果为"2018-02-22";

    该函数的优点是通用性高,只要传入需要的指定时间、间隔日期即可,缺点是当获取前后一个月、三个月、一年等存在误差。

    二.获取指定日期前N月代码

    function getpreDate(sdate,monthNum,caret) {        

           var speYear = "";
            var speMonth = "";
            var speDate = "";
            var patt1 =  /^\d{4}-([0-1]?[0-9])-([0-3]?[0-9])$/; 
            if(!(sdate && typeof(sdate) == "string" &&  patt1.test(sdate))){
                sdate = new Date();
                speYear = sdate.getFullYear();
                speMonth = sdate.getMonth() + 1;
                speDate = sdate.getDate();
            }
            else{
                var sdateAry = sdate.split("-");
                speYear = parseInt(sdateAry[0]);
                speMonth = parseInt(sdateAry[1]);
                speDate = parseInt(sdateAry[2]);        
            }
            monthNum = isNaN(parseInt(monthNum)) ? 0 : parseInt(monthNum);
          caret = (caret && typeof(caret) == "string") ? caret : "";
            var preYear = speYear;
            var preMonth = speMonth - monthNum;
            if(preMonth <= 0){ //如差的月份小于0,则将对应的年月做修改
                preYear = preYear - (preMonth/12 > 0) ? preMonth/12 : 1;
                preMonth = 12 - (Math.abs(preMonth)%12);
            }

            var preDate = speDate;
            var preDates = new Date(preYear,preMonth,0);
            var preDateAll = preDates.getDate(); //获取指定月份的总日数
            if(preDate > preDateAll){ //若指定日大于指定月份所含有的天数,则使用指定月份最大的天数
                 preDate = preDateAll;
            }

        var preDate =  preYear + caret +  preMonth + caret + preDate;
        return preDate;    

    }

    该函数的优点是通用性高,只要传入需要的指定时间、指定间隔月份即可,月份中的天数不同不会影响最终结果所得月份

    三.获取指定日期后N月代码

     

    四.知识点

    【1】Date():(1)作用:获取当前日期和时间;                                                                                                                                            (2)语法:[1]Date()不传入任何参数的情况下,获取当前时刻的日期和时间;                                                                                        (2)Date(传入日期毫秒数)根据传入参数,创建特定日期和时间,获取日期毫秒数的简单方法可以是Date.parse()和Date.UTC(),还可以直接传入Number类型的毫秒数,其中Date.parse()中只要是常规的日期表示法,都可以正常转换,规则是支持年月日、月日年格式、日月年格式(该格式时月必须使用英文,不能使用数字),其中年月日之间的间隔可以是空格( )、反斜杠(/)、连字符-、逗号(,),月可以使用英文全写法和缩写法,暂不支持其他情况,例如"2018-09-18"(年月日的格式,还可以使用"2018 09 18"(其中空格可以换为逗号, 反斜杠/ 连字符-),但是不能直接使用20180918、"20180918"、2018/09/18、2018-09-18)、"September 18 2018"(月日年格式,月份也可以使用简写Sept.或Sept,还可以使用"09 18 2018"(其中空格可以换为逗号, 反斜杠/ 连字符-),但是不能使用"0918208"、"09\18\2018"); "18-Sept-2018" (日月年格式,其他月必须为英文全写或者简写,还可以使用"18 Sept 2018"(其中空格可以换为逗号, 反斜杠/  连字符- 斜杠\ ),但是不能使用"18 09 2018")                                                                       其中Date.UTC()中参数是年,基于0的月份(0-11),月中的哪一天(1-31),小时数(0-23),分钟,秒,毫秒,其中年月必须,其他都可以使用默认值(天的默认值为1,其他全部为0) ,其中参数可以是Number类型也可以是Number类型;                                                   (3)Date(日期字符串) ,日期格式跟上的Date.parse一致,因为传入字符串后后台会自动调用Date.parse();                                  (4)Date(年,月,日,时,分,秒,毫秒数) ,日期格式跟上的Date.UTC一致,因为传入字符串后后台会自动调用Date.UTC();   

     【2】Date.now():返回调用该方法的日期和时间距离时间零点(1970-01-01 00:00:00 UTC),返回值类型为Number,支持的浏览器有IE9+、 Firefox 3+、 Safari 3+、 Opera 10.5 和 Chrome,在不支持的浏览器中可以使用 +模拟,例如 var t = +new  Date(),Date.now() == (+new Date());其中是由于Date的valueOf()方法会转换为毫秒数,在进行日期计算以及比较时会自动调用该方法。

    【3】一系列get类方法获取日期时间数据:(1)getFullYear():返回实例对象的四位年份,例如var t = (new Date("2018-09-18")).getFullYear(),t=2018;       (2)getMonth()::返回实例对象的月份(0-11),例如:var t = (new Date("2018-09-18")).getMonth(),t=9;     (3)getDate():返回实例对象对应月份的几号(1-31),例如:var t = (new Date("2018-09-18")).getDate(),t=18;        (4)getHours():返回实例对象对应的小时数(0-23,例如:var t = (new Date()).getHours();t=21;   (5)getMinutes:返回实例对象对应的分钟(0-59),例如:var t = (new Date()).getMinutes();t=30;   (6)getSeconds():返回实例对象对应的秒数(0-59),例如:var t = (new Date()).getMinutes();t=53;  (7)getMilliseconds():返回实例对象对应的秒数(0-999),例如:var t = (new Date()).getMilliseconds();t=957;      (8)getDay():返回实例对象对应的星期几(星期日为0,星期一为1,值为0-6),例如:var t = (new Date("2018-09-18")).getDay(),t=2(表示星期三);   (9)getTime():返回实例日期距离时间零点毫秒数(1970-01-01 00:00:00 UTC),等同于valueOf(),例如var t = (new Date("2018-09-18")).getTime(),t=1537228800000;注意:这些方法的返回值类型都是Number。

    【4】一系列set类方法设置日期数据:

                      

    展开全文
  • 1、获取指定日期天、下天 function getNextDate(date,day) { var dd = new Date(date); dd.setDate(dd.getDate() + day); var y = dd.getFullYear(); var m = dd.getMonth() + 1 &lt; 10 ? "0...

    1、获取指定日期上一天、下一天

    function getNextDate(date,day) {  
      var dd = new Date(date);
      dd.setDate(dd.getDate() + day);
      var y = dd.getFullYear();
      var m = dd.getMonth() + 1 < 10 ? "0" + (dd.getMonth() + 1) : dd.getMonth() + 1;
      var d = dd.getDate() < 10 ? "0" + dd.getDate() : dd.getDate();
      return y + "-" + m + "-" + d;
    };
    //测试  
    // getNextDate('2018-02-28', 1)
    // getNextDate('2018-03-01', -1)

    2、获取指定日期上一月

    /** 
             * 获取上一个月 
             * 
             * @date 格式为yyyy-mm-dd的日期,如:2014-01-25 
             */  
    function getPreMonth(date) {  
                var arr = date.split('-');  
                var year = arr[0]; //获取当前日期的年份  
                var month = arr[1]; //获取当前日期的月份  
                var day = arr[2]; //获取当前日期的日  
                var days = new Date(year, month, 0);  
                days = days.getDate(); //获取当前日期中月的天数  
                var year2 = year;  
                var month2 = parseInt(month) - 1;  
                if (month2 == 0) {  
                    year2 = parseInt(year2) - 1;  
                    month2 = 12;  
                }  
                var day2 = day;  
                var days2 = new Date(year2, month2, 0);  
                days2 = days2.getDate();  
                if (day2 > days2) {  
                    day2 = days2;  
                }  
                if (month2 < 10) {  
                    month2 = '0' + month2;  
                }  
                var t2 = year2 + '-' + month2 + '-' + day2;  
                return t2;  
            }
    //测试          
    //alert(getPreMonth("2014-01-25"));  

    3、获取指定日期下一月

     /** 
             * 获取下一个月 
             * 
             * @date 格式为yyyy-mm-dd的日期,如:2014-01-25 
             */          
            function getNextMonth(date) {  
                var arr = date.split('-');  
                var year = arr[0]; //获取当前日期的年份  
                var month = arr[1]; //获取当前日期的月份  
                var day = arr[2]; //获取当前日期的日  
                var days = new Date(year, month, 0);  
                days = days.getDate(); //获取当前日期中的月的天数  
                var year2 = year;  
                var month2 = parseInt(month) + 1;  
                if (month2 == 13) {  
                    year2 = parseInt(year2) + 1;  
                    month2 = 1;  
                }  
                var day2 = day;  
                var days2 = new Date(year2, month2, 0);  
                days2 = days2.getDate();  
                if (day2 > days2) {  
                    day2 = days2;  
                }  
                if (month2 < 10) {  
                    month2 = '0' + month2;  
                }  
              
                var t2 = year2 + '-' + month2 + '-' + day2;  
                return t2;  
            }
    //测试          
    //alert(getNextMonth("2014-12-25")); 

     

    展开全文
  • Oracle获取指定日期的前()n个月

    千次阅读 2020-08-07 17:56:31
    1.Oracle获取指定日期的前()n个月 -- 获取2020-06的5个月(2020-11) SELECT TO_CHAR(ADD_MONTHS(to_date('2020-06','yyyy-MM'),5),'YYYY-MM') FROM dual; -- 获取2020-06的前3个月(2020-03) SELECT TO_...

    0.码仙励志

    只做第一个我,不做第二个谁。

    1.Oracle获取指定日期的前(后)n个月

    -- 获取2020-06的后5个月(2020-11)
    SELECT TO_CHAR(ADD_MONTHS(to_date('2020-06','yyyy-MM'),5),'YYYY-MM') FROM dual;
    -- 获取2020-06的前3个月(2020-03)
    SELECT TO_CHAR(ADD_MONTHS(to_date('2020-06','yyyy-MM'),-3),'YYYY-MM') FROM dual;

     

    展开全文
  • 1.获取一个日历的实例 2.将指定的时间格式化成date类型 3.获取该date的int类型的时间天数day 4.将day+或者-1 5.根据计算的day转化成date类型 6.转化为易懂的格式 /** * 获得指定日期一天(参数无论是y-...

    思想:

    1.获取一个日历的实例

    2.将指定的时间格式化成date类型

    3.获取该date的int类型的时间天数day

    4.将day+或者-1

    5.根据计算后的day转化成date类型

    6.转化为易懂的格式

    /**

    * 获得指定日期的后一天(参数无论是y-M-d 还是y-M-d H:m:s  返回值都只有yyyy-MM-dd)
    * @param specifiedDay
    * @return
    */
        public static String getSpecifiedDayAfter(String specifiedDay){
       Calendar c = Calendar.getInstance();
       Date date=null;
       try {
       date = new SimpleDateFormat("yy-MM-dd").parse(specifiedDay);
       } catch (ParseException e) {
       e.printStackTrace();
       }
       c.setTime(date);
       int day=c.get(Calendar.DATE);
       c.set(Calendar.DATE,day+1);
       String dayAfter=new SimpleDateFormat("yyyy-MM-dd").format(c.getTime());
       return dayAfter;
        }
    展开全文
  • dump( date( 'Y-m-d', strtotime('2018-10-1 +1 day') ) ); dump( date( 'Y-m-d', strtotime('2018-10-1 +1 week') ) ); dump( date( 'Y-m-d', strtotime('2018-10-1 +1 month') ) ); dump( date( 'Y-m-d', strto...
  • 在做项目中遇到一个关于日记的问题,国外算一周是从周末到周六...很多软件需要获取一个月或者一周的所有日期来进行数据统计,为了方便大家开发,避免重复劳动。特地写了一个DateTools工具类,使用方法都在main函数里。
  • 我们有时候在写批处理 Shell 脚本时,可能需要获取指定日期前() N 天//年的日期,这里的 N 可以是 1 天//年、2 天//年、3 天//年等等。方法其实很简单,这里做一个简单记录。基于这个语法,我们也可以写...
  • //获取当前日期方法 function getNowFormatDate() { var date = new Date(); var seperator1 = "-"; var year = date.getFullYear(); var month = date.getMonth() + 1; var strDate = date.getDate(); if ...
  • * 获取指定月的前一月(年)或后一月(年) * @param dateStr * @param addYear * @param addMonth * @param addDate * @return 输入的时期格式为yyyy-MM,输出的日期格式为yyyy-MM * @throws ...
  • 1、补全给定起止时间区间内的所有日期 /** * 补全给定起止时间区间内的所有日期 * @param startTime * @param endTime * @param isIncludeStartTime * @return */ public static List<String> ...
  • php获取指定日期的前天,前一月,前一年日期 前天的日期为: date(“Y-m-d”,strtotime("-1 days",strtotime(‘2014-07-01’))) 前一月的日期为: date(“Y-m-d”,strtotime("-1 months",strtotime(‘2014-07-01...
  • js获取指定日期后一

    千次阅读 2018-03-19 17:57:18
    js获取指定日期后一天 比如现在是“2014-06-23”,我想得到“2014-06-24” function getNextDay(d){ d = new Date(d); d = +d + 1000*60*60*24; d = new Date(d); //return d; //格式化 ...
  • JAVA获取某个日期个月的最后

    千次阅读 2019-01-31 16:08:14
    //查看了网上大多数在2月份的时候都是有点问题,所以自己写了一个放博客上方便大家查看 public static void main(String[] args) { SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); try { Date ...
  • JAVA获取指定日期

    千次阅读 2019-03-28 09:13:12
    JAVA获取指定日期 java项目中经常需要用到到当前日期的前若干天、若干天、前几小时、几小时的时间,现总结如下 import java.text.DateFormat; import java.text.SimpleDateFormat; import java.util....
  • Python实现获取指定日期后一

    千次阅读 2019-01-30 13:04:35
    https://blog.csdn.net/u012965373/article/details/78272606   Python简单视线如下:       import datetime today = datetime.date.today() ... tomorrow = today + datetime.timedelta...
  • mysql 获取指定日期所在的第

    千次阅读 2019-11-15 14:54:59
    select curdate(); --获取当前日期 select last_day(curdate()); --获取当月最后天。 select DATE_ADD(curdate(),interval -day(curdate())+1 day); --获取本月第天 select date_add(curd...
  • js 获取一个月日期

    千次阅读 2017-07-18 10:47:17
    js 获取一个月日期,加详细注解<!DOCTYPE html> <title></title> <script src="http://libs.baidu.co
  • Javascript获取指定日期

    千次阅读 2017-04-27 20:46:23
    Javascript获取指定日期  近期在做一个项目统计的页面,需要动态获取今天、昨天、近一周、近一年的统计数据。具体的效果是在页面点击不同Button,加载不同时间段的数据。效果图如下: 实现设计: Step1:获取...
  • 获取传入日期所在的第天 public static Date getFirstDayDateOfMonth(final Date date) { final Calendar cal = Calendar.getInstance(); cal.setTime(date); final int last...
  • 相信日期操作大家都会用到,有时需要获取指定日期当月和下个月的第天,这怎么处理呢,话不多说上干货。/** * 获取指定日期当月的第天 * @param dateStr * @param format * @return */ public static ...
  • * 返回指定日期的季度 * * @param date * @return */ private static int getQuarterOfYear(Date date) { Calendar calendar = Calendar. getInstance (); calendar.setTime(date); return ...
  • * 获取日期前/某个的所有日期 0表示当前 负数表示前多少 正数表示多少 * @param month * @return */ public static List&lt;Date&gt; getDayListOfMonth(Integer months){ ...
  • java获取指定日期的所在周的第天(周一) private static void getWeekByDate(Date time) { SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); // 设置时间格式 Calendar cal = Calendar....
  • java获取指定日期的前天和后一

    万次阅读 2018-03-19 17:14:03
    @Test public void getDay() { String day = "2018-03-19"; Calendar c = Calendar.getInstance(); Date date = null; try { date = new SimpleDateFormat("yy-...后一天同前天,c.set(Calendar.DATA,day1+1);
  • java获得指定日期的前天,后一天的代码,需要的朋友可以参考下。 复制代码 代码如下: /** * 获得指定日期的前天 * @param specifiedDay * @return * @throws Exception */ public static String ...
  • 输入时间字符串,做一个天数转换的处理 //获取前一天 public static String getLastDay(String time){ SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); Calendar calendar = Calendar....
  • date 代表指定日期,格式:2018-09-27 day 传-1表始前天,传1表始后一天 function getNextDate(date,day) { var dd = new Date(date); dd.setDate(dd.getDate() + day); var y = dd.getFullYear(); var m =...
  • ... import java.text.SimpleDateFormat; import java.util.Date; ... System.out.println("年:"+year+"\t:"+month+"\t日:"+day+ "\t时:"+hour+"\t分:"+minute+"\t秒:"+second); } }
  • SQL 获取当前日期一个月日期

    万次阅读 2018-04-25 16:52:30
    获取当前日期一个月日期:SELECT DATE_ADD(NOW(),INTERVAL -1 MONTH)SQL 中格式化日期SELECT DATE_FORMAT(NOW(),'%Y-%m-%d %H:%i:%S')
  • JAVA 获取某个指定日期的前后日期

    千次阅读 2019-07-09 09:59:06
    public static String getDate(String time){ SimpleDateFormat sdf = new SimpleDateFormat(... 如:输入 :2019-06-30 获取后一天 为2019-07-01  如:输入 :2019-12-31 获取后一天 为2020-01-01

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 283,509
精华内容 113,403
关键字:

获取指定日期的后一个月