function p(s) {
        return s < 10 ? '0' + s: s;
}
getlastmonth()
function getlastmonth() {
    var myDate = new Date();
    var currentYear=myDate.getFullYear();
    var currentMonth=myDate.getMonth()+1;  
    var lastMonth=myDate.getMonth();
    var currentDate=myDate.getDate();
    var lastDate;
    //一个月前的时间
    var prevCurrentYear=0;
    var prevCurrentMonth=0;
    var preDay = 0;
    //三个月前的时间
    var tmY =0;
    var tmM = 0;
    var tmD = 0;
    
    //半年前的时间
 var halfY =0;
 var halfM = 0;
 var halD = 0;
 
 //一年前的时间
 var oneY = 0;
 var oneM = 0;
 var oneD  = 0;
    var daysInMonth = new Array(0,31,28,31,30,31,30,31,31,30,31,30,31);
    isYears(currentYear);
 if(currentMonth==0){
     //一月前的时间
     prevCurrentYear=currentYear-1;
     prevCurrentMonth=12;
     isYears(prevCurrentYear)
     preDay = monthTime(prevCurrentMonth,currentDate)
     
     //三个月前的时间
     tmY = currentYear-1;
     tmM = 10;
     tmD = monthTime(tmM,currentDate);
     
     //半年前的时间
     halfY = currentYear-1;
     halfM = 6;
     halfD = monthTime(halfM,currentDate);
     
     //一年前的时间
      oneY = currentYear-1;
      oneM = 0;
      oneD = monthTime(oneM,currentDate);
     
 }else{
     //一个月前的时间
     prevCurrentYear=currentYear;
     prevCurrentMonth=isZero(currentMonth-1);
     preDay = monthTime(prevCurrentMonth,currentDate);
     
     //三个月前的时间
     if(currentMonth-3 < 0){
         tmY = currentYear-1;
         tmM = isZero(12+(currentMonth-3));
         isYears(tmY);
         tmD = monthTime(tmM,currentDate)
     }else{
         tmY = currentYear;
         tmM = isZero(currentMonth-3);
         isZero(tmM);
         isYears(tmY);
         tmD = monthTime(tmM,currentDate)
     }
     
     //半年前的时间
     if(currentMonth -6 < 3){
         halfY = currentYear-1;
         halfM = isZero(12+(currentMonth-6));
         isZero(halfM);
         isYears(halfM);
         halfD =monthTime(halfM,currentDate)
     }else{
         halfY = currentYear;
         halfM = isZero(currentMonth-6);
         isZero(halfM);
         isYears(halfM);
         halfD =monthTime(halfM,currentDate)
     }
     
     //一年前的时间
     oneY = currentYear-1;
     oneM =12+(currentMonth-12);
     isYears(halfM);
     oneD =monthTime(oneM,currentDate)
 }
 function isYears(years){
     if(years%4 == 0 && years%100 != 0  || years%400 == 0 ){
            daysInMonth[2]= 29;
        }
 }
 function monthTime(a,b){
     if(daysInMonth[a] < b){
             lastDate =  daysInMonth[a]
        }else{
             lastDate = b;                
        }
     return lastDate;
 }
 
 function isZero(s){
     if(s ==0 ){
         return s =12;
     }else{
         return s;
     }
 }
    var now=currentYear+'-'+p(currentMonth)+"-"+p(currentDate);
 var priceLastMonth = prevCurrentYear+"-"+p(prevCurrentMonth)+"-"+p(lastDate);
 //三个月前的时间
 var threeMonth = tmY + "-" + p(tmM) + '-' + p(tmD);
 
 //半年期的时间
 var halfTime = halfY +"-" + p(halfM) + "-" + p(halfD);
 
 //一年前的时间
 var oneTime = oneY + "-" + p(oneM) + "-" + p(oneD)
 var timeArr=[now,priceLastMonth,threeMonth,halfTime,oneTime]
 return timeArr;
}

js根据当前日期 求一个月前 半年前 一年前的日期的更多相关文章

  1. js计算当前日期上一个月和下一个月

    /**         * 获取上一个月         *         * @date 格式为yyyy-mm-dd的日期,如:2014-01-25         */        funct ...

  2. Oracle获取一周前,一个月前,一年前, 本周,本月,当年的日期

    1.获取当前时间一周前的日期 ' day from dual 类似的 --当前时间减去7分钟的时间 ' MINUTE from dual --当前时间减去7小时的时间 ' hour from dual ...

  3. Calendar计算一个月前的日期,踩坑记录

    错误示范:calendar.set(Calendar.MONTH, calendar.get(Calendar.MONTH) - 1);//获取一个月前的今天这种写法假设传入的日期为2019-03-3 ...

  4. php获取一个月前的时间戳,获取三个月前的时间戳,获取一年前的时间戳

    strtotime 非常强大的一个获取时间戳的函数 php获取一个月前的时间戳: strtotime("-0 year -1 month -0 day"); php获取三个月前的时 ...

  5. js 如何获取某一个月的第一天是周几

    js 如何获取某一个月的第一天是周几 calendar ??? padding dates // day = 1 const firstMonthDate = new Date(year + mont ...

  6. java 获取日期的几天前,几个月前和几年前

    java 获取日期的几天前,几个月前和几年前. package bys.utils; import java.util.Date; /** * Created by toutou on 2015/3/ ...

  7. iOS 刚刚,几分钟前,几小时前,几天前,几月前,几年前

    - (NSString *)compareCurrentTime:(NSDate*) compareDate { NSTimeInterval timeInterval = [compareDate ...

  8. js如何计算当前日期的前一个月和后一个月?

    <div class="query_title_div"><img src="../../images/task/before.png"/&g ...

  9. javascript 添加行,删除行,datepicker获取当前日期和上一个月日期并设置格式,笔记

    $(function () { getdatepicker(); today(); getPreMonth(); getdatetimepicker(); }); function today(){ ...

随机推荐

  1. Spark学习入门(让人看了想吐的话题)

    这是个老生常谈的话题,大家是不是看到这个文章标题就快吐了,本来想着手写一些有技术深度的东西,但是看到太多童鞋卡在入门的门槛上,所以还是打算总结一下入门经验.这种标题真的真的在哪里都可以看得到,度娘一搜 ...

  2. Web服务器:Apache的安装使用

    Apache我们很熟悉,已经用了不短时间的tomcat就是apache公司开发的,那么这款以公司命名的所谓的Web服务器Apache,又到底什么呢? 一.概念 Apache是一个静态的Web服务器,是 ...

  3. ROM与RAM

    今天小姐姐来问我关于ROM.RAM和Flash的区别,我给她大致的说了一下名称和作用.可人家说她知道这玩意的名字,希望我能够接地气的解释一下什么是ROM.RAM.FLASH…… 这就把我难住了 ≧ ﹏ ...

  4. TX2开发板Ubuntu16.04设置静态IP

    TX2开发板Ubuntu16.04设置静态IP  https://www.cnblogs.com/qilai/p/11285445.html 首先打开一个Terminal输入 ifconfig 查看自 ...

  5. Django--评论功能实现和用户登录

    1.确定实现评论功能的方式 1.第三方社会化评论插件(有言.多说.网易云跟帖等) 优点:可以直接用,紧急时开发快 缺点:评论存储在第三方,第三方挂了就不弄用 2.Django评论库 django-co ...

  6. 十九、SAP查询所有数据库表的所有数据

    一.我们打款SAP自带的一个演示数据库SCARR 二.表结构如下 三.代码如下 四.执行结果如下 我们对比一下数据库的内容,很perfect 不忘初心,如果您认为这篇文章有价值,认同作者的付出,可以微 ...

  7. 091-PHP数组过滤函数array_filter,过滤非整数

    <?php function not_int($x){ //定义过滤非整数的函数 if(is_int($x)) return TRUE; } $arr=array(1,2,'a',3,4,'c' ...

  8. Power BI Premium

    Power BI Premium的设计是为了满足拥有大量数据的大公司的需求.微软已经重新构建了Power BI的架构,以允许大量的“只读”用户.Premium用户还可以利用很多新功能. Power B ...

  9. 干货分享:Academic Essay写作套路详解

    你想过如何中立的表达自己吗?大概只有10%不到的同学,会真正重视这个细节.但很多留学生能顺利写完作文已经不容易,还要注意什么中立不中立的.我知道这个标准,对许多同学有些过分,但很残酷的告诉你,这的确是 ...

  10. 干货分享:Research Essay写作规范详解

    同学们在刚到国外时觉得一切都很新鲜,感觉到处都在吸引着他们,但是大部分留学生在刚碰到Research Essay便是一头包.其实Research Essay也没有想象中的那么难,只是留学生们初次接触, ...