精华内容
下载资源
问答
  • 结束时间为下个月1日 var y = (T.getMonth() == 11) ? (T.getFullYear() + 1 ) : T.getFullYear(); var m = (T.getMonth() == 11) ? 1 : T.getMonth() + 2 ; var end = y + '-'+ m +'-' +1 ; var T2 ...
           var month = $(".f_month").val();   //2018-10
                var data = $(".f_data").val();   //1或16
                var start = month + '-' +data;    //2018-10-1   2018-10-16
                var T = new Date(start);
                var start_time = T.getTime()/1000;
                if (data ==16)
                {
    //                结束时间为下个月1日
                    var y = (T.getMonth() == 11) ? (T.getFullYear() + 1) : T.getFullYear();
                    var m = (T.getMonth() == 11) ? 1 : T.getMonth() + 2;
                    var end  = y + '-'+ m +'-' +1;
    
                    var T2 = new Date(end);
                    var end_time = T2.getTime()/1000
    
                }else if (data==1)
                {
                    //结束时间为该月15日
                    var end = month + '-' +15;
                    var T = new Date(end);
                    var end_time = T.getTime()/1000;
                }

     

    转载于:https://www.cnblogs.com/zwtqf/p/9664222.html

    展开全文
  • 目录获取指定日期月份天、年份天指定日期下周指定周几按指定格式返回指定日期增加几个月后的日期 不过是在数据处理、脚本、还是编程语言开发中,经常会遇到时间处理情况,在hive中,如何获取指定...


    不过是在数据处理、脚本、还是编程语言开发中,经常会遇到时间处理的情况,在hive中,如何获取指定日期月份的第一天、年份的第一天、指定日期下周的指定周几、按指定格式返回指定日期增加几个月后的日期呢?

    下面我们就利用hive自带的函数一一实现。

    获取指定日期月份的第一天、年份的第一天

    在hive中有这样一个函数,trunc(string date, string format)

    该函数官网是这样说明的:

    Returns date truncated to the unit specified by the format (as of Hive 1.2.0). Supported formats: MONTH/MON/MM, YEAR/YYYY/YY. Example: trunc(‘2015-03-17’, ‘MM’) = 2015-03-01

    在hive1.2.0版本后执行此函数,此函数返回指定格式的单元,指定格式有:MONTH/MON/MM, YEAR/YYYY/YY

    > select trunc('2019-02-24', 'YYYY');
    +-------------+--+
    |     _c0     |
    +-------------+--+
    | 2019-01-01  |
    +-------------+--+
    
    > select trunc('2019-02-24', 'MM');
    +-------------+--+
    |     _c0     |
    +-------------+--+
    | 2019-02-01  |
    +-------------+--+
    

    指定日期下周的指定周几

    利用hive中自带的函数:next_day(string start_date, string day_of_week)

    官网说明:

    Returns the first date which is later than start_date and named as day_of_week (as of Hive 1.2.0). start_date is a string/date/timestamp. day_of_week is 2 letters, 3 letters or full name of the day of the week (e.g. Mo, tue, FRIDAY). The time part of start_date is ignored. Example: next_day(‘2015-01-14’, ‘TU’) = 2015-01-20.

    在hive1.2.0版本后才支持此函数

    > select next_day('2019-02-24', 'TU');
    +-------------+--+
    |     _c0     |
    +-------------+--+
    | 2019-02-26  |
    +-------------+--+
    
    > select next_day('2019-02-24', 'MONDAY');
    +-------------+--+
    |     _c0     |
    +-------------+--+
    | 2019-02-25  |
    +-------------+--+
    

    按指定格式返回指定日期增加几个月后的日期

    利用hive中自带的函数:add_months(string start_date, int num_months, output_date_format)

    官网说明:

    Returns the date that is num_months after start_date (as of Hive 1.1.0). start_date is a string, date or timestamp. num_months is an integer. If start_date is the last day of the month or if the resulting month has fewer days than the day component of start_date, then the result is the last day of the resulting month. Otherwise, the result has the same day component as start_date. The default output format is ‘yyyy-MM-dd’.
    Before Hive 4.0.0, the time part of the date is ignored.
    As of Hive 4.0.0, add_months supports an optional argument output_date_format, which accepts a String that represents a valid date format for the output. This allows to retain the time format in the output.
    For example :
    add_months(‘2009-08-31’, 1) returns ‘2009-09-30’.
    add_months(‘2017-12-31 14:15:16’, 2, ‘YYYY-MM-dd HH:mm:ss’) returns ‘2018-02-28 14:15:16’.

    此函数在hive1.1.0版本后

    > select add_months('2019-02-28', 1);
    +-------------+--+
    |     _c0     |
    +-------------+--+
    | 2019-03-31  |
    +-------------+--+
    
    > select add_months('2019-02-24 21:15:16', 2, 'YYYY-MM-dd HH:mm:ss');
    +----------------------+--+
    |          _c0         |
    +----------------------+--+
    | 2019-04-24 21:15:16  |
    +----------------------+--+
    

    参考链接:https://cwiki.apache.org/confluence/display/Hive/LanguageManual+UDF?tdsourcetag=s_pctim_aiomsg

    展开全文
  • 获取指定日期前或者指定间隔时间代码 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类方法设置日期数据:

                      

    展开全文
  • 背景有时候我们在跑数据时可能会遇到将指定日期变为后一日期。应用场景如下:今天是423日17:00,我想获取所有422日到23日两天复联4新增预售票房信息,所以理论上我们应该统计422日00:00——424日00:00...

    背景

    有时候我们在跑数据时可能会遇到将指定日期变为后一天的日期。应用场景如下:今天是4月23日17:00,我想获取所有4月22日到23日两天的复联4新增预售票房信息,所以理论上我们应该统计4月22日00:00——4月24日00:00的数据,但是用户有可能下意识的就会选择22、23。

    有人也许会说,加个提示不就行了何必这么麻烦?在日期选择里有时候产品会要求当前日期之后的日子不可选(略杠精)那么这种情况下,上述需求就需要咱们处理了,存在即合理hhh。那么如何实现呢?

    首先众所周知,在编程时,日期有一个通用的标准就是时间戳(timestamp),时间戳是指格林威治时间1970年01月01日00时00分00秒(北京时间1970年01月01日08时00分00秒)起至现在的总秒数/总毫秒数(但毫秒数更为常见,也更加精确)。

    思路

    思路其实很简单,就是获取当前时间戳A,计算一天的毫秒数B,即可得后一天的时间戳C=A+B,随后通过C获取年月日即可。

    代码

    在项目里用TS写的,不用太纠结于变量的类型声明,其他都差不多

    dateFormat(d: Date, str: string, isEndDate: boolean) {

    let mon = d.getMonth() + 1;

    let day = d.getDate();//设置默认的月份和天数

    if (isEndDate) {

    //当输入为结束日期时,执行如下代码

    d.setTime(date.getTime() + 3600 * 24 * 1000);

    day = d.getDate();

    mon = d.getMonth() + 1;

    }

    let monthString = mon.toString();

    if (mon < 10) {

    //当月份小于10时,显示月份的时候在前面加一个0

    monthString = '0' + monthString;

    }

    let dayString = day.toString();

    if (day < 10) {

    //当天数小于10时,显示天数的时候在前面加一个0

    dayString = '0' + dayString;

    }

    //根据传进的str来返回指定的时间格式,str可以为任意格式的字符串

    return [d.getFullYear(), monthString, dayString].join(str);

    }

    this.dateFormat(new Date(), '-', true);

    //当前时间为2019年4月23日,此时输出为2019-4-24

    Done,后期会总结一些关于日期相关计算的思路,可能简单的就不写code了。

    展开全文
  • 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_...
  • 我们有时候在写批处理 Shell 脚本时,可能需要获取指定日期前() N 天//年日期,这里 N 可以是 1 天//年、2 天//年、3 天//年等等。方法其实很简单,这里做一个简单记录。基于这个语法,我们也可以写...
  • 例如,指定日期为2010-03-31前一个月的日期:2010-02-28前两个月日期:2010-01-31前一年日期:2009-03-31通过什么方法可以实现? import java.util.Calendar;public class TestGetLastMonth { /** * 获取指定...
  • php 获取上个月、下个月、本月日期 当前月份前后一个月... function GetTheMonth($date){//获取指定日期所在月第一天和最后一天  $firstday = date("Y-m-01",strtotime($date));  $lastday = date("Y-m-d",s
  • 一个很好用的日期转换工具 可以获得几天、几、几年前后制定日期格式 只需要将simpleDateFormat中格式进行变换就可以得到想要的日期。 package com.founder.zfdsj.zip.utils; import java.text.Parse...
  • Java 获取指定日期

    2019-09-09 15:37:10
    相信大家平常对日期操作都会用得上,下面介绍一下简单的获取指定日期~ 1.获取当前日期 2.获取当前最开始时间和结束时间 3.获取当天是周几 4.获取上周 5.获取本周一 6.获取后的日期 7....
  • 他想根据一个给定的日期获取该给定日期在这个年月最后一天的日期,并且要求在Python中怎么做。基于此,我就想到了对比Excel,在Python中完成这个需求。Excel完成这个需求 ① 在单元格中输入EOMONTH()公式② 完成...
  • 他想根据一个给定的日期获取该给定日期在这个年月最后一天的日期,并且要求在Python中怎么做。基于此,我就想到了对比Excel,在Python中完成这个需求。Excel完成这个需求① 在单元格中输入EOMONTH()公式② 完成...
  • * 返回傳入日期的前或第n个月的日期, 如果 lisdate 为now, 则代表当前日期 * * eg: ("2020-12-11", 1) -> 2020-11-11; ("2020-12-11", 2) -> 2020-02-11 * * @param yearmonth * @return *
  • 他想根据一个给定的日期获取该给定日期在这个年月最后一天的日期,并且要求在Python中怎么做。基于此,我就想到了对比Excel,在Python中完成这个需求。 Excel完成这个需求 ① 在单元格中输入EOMONTH()公式 ...
  • 在平常项目开发过程中,经常...此类型常用需求为:推算几个月后(前)今天的日期。 /** *获取个月输入日期 *{param:DateTime} date 输入日期(YYYY-MM-DD) *{param:number } monthNum 月数 */ GetPreMont
  • * 获取指定日期往前/往后指定天数日期 * * @param now 指定日期 不传则为当前日期 * @param format 时间格式 * @param day 指定天数 指定当前历史日期时传负数,未来日期传正数 * @return 指定天数前...
  • 他想根据一个给定的日期获取该给定日期在这个年月最后一天的日期,并且要求在Python中怎么做。基于此,我就想到了对比Excel,在Python中完成这个需求。Excel完成这个需求 ① 在单元格中输入EOMONTH()公式② 完成...
  • 要实现效果如下:要实现就是输入指定的日期格式然后得出这样一个列表,然后在当前的日期后一个星号;这个小练习主要时对Date数据类型包相关练习,涉及了字符串转化为Date格式。例如可以这样去写DateFormat p...
  • * 获取指定格式的时间 * @param dt 日期的对象 * @returns {string} 返回的是字符串的日期时间 */ function getDate(dt) { //获取年 var year = dt.getFullYear(); //获取 var month = dt.getMonth() + 1;...
  • 最近被日期弄得很头疼,由于js...首先,以下代码均有一个共同的日期格式化函数 //日期格式化 Date.prototype.format = function(format) { var o = { "M+" : this.getMonth() + 1, // month "d+" : this.getD
  • 之前在项目开发过程当中,需要写一个月历和一个周历,由于当时项目经验太少,保存时间时候将格式化后的时间保存到数据库,并且还要判断当前一个月内所有天数里发生事件,还用到了给出指定的日期判断是星期几...
  • /*获取指定日期前或者指定间隔时间* sdate:指定日期* interval:时间间隔* caret:间隔符*/function getNowFormatDate(sdate,interval,caret) { var patt1 = /^\d{4}-([0-1]?[0-9])-([0-3]?[0-9])$/; //判断输入...
  • 我们在python日常使用中经常会用到... 获取获得一个月未,季末,年未天数 最后一天 :param any_day: 任意日期 :return: <class 'datetime.date'年,月,季末的日期,距年末,月末,季末天数 """ next_mo
  • Workday用法Workday用途就是,给定一个日期,然后求这个日期指定数量工作日(前)的日期。比如说,给定一个日期2007年38号,然后求38号之后第一个工作日的日期。具体语法是:Workday(start_d...
  • * @param interval 指定为什么日期进行加或减 y年Md日h时m分s秒 任意指定一个 * @param number 正数为加 负数为减 * @return 功能:日期加减 获得指定时间前后时间 */ public static Date dateAdd(Date date,...

空空如也

空空如也

1 2 3 4 5 ... 11
收藏数 202
精华内容 80
关键字:

获取指定日期的后一个月