js根据当前日期 求一个月前 半年前 一年前的日期
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根据当前日期 求一个月前 半年前 一年前的日期的更多相关文章
- js计算当前日期上一个月和下一个月
/** * 获取上一个月 * * @date 格式为yyyy-mm-dd的日期,如:2014-01-25 */ funct ...
- Oracle获取一周前,一个月前,一年前, 本周,本月,当年的日期
1.获取当前时间一周前的日期 ' day from dual 类似的 --当前时间减去7分钟的时间 ' MINUTE from dual --当前时间减去7小时的时间 ' hour from dual ...
- Calendar计算一个月前的日期,踩坑记录
错误示范:calendar.set(Calendar.MONTH, calendar.get(Calendar.MONTH) - 1);//获取一个月前的今天这种写法假设传入的日期为2019-03-3 ...
- php获取一个月前的时间戳,获取三个月前的时间戳,获取一年前的时间戳
strtotime 非常强大的一个获取时间戳的函数 php获取一个月前的时间戳: strtotime("-0 year -1 month -0 day"); php获取三个月前的时 ...
- js 如何获取某一个月的第一天是周几
js 如何获取某一个月的第一天是周几 calendar ??? padding dates // day = 1 const firstMonthDate = new Date(year + mont ...
- java 获取日期的几天前,几个月前和几年前
java 获取日期的几天前,几个月前和几年前. package bys.utils; import java.util.Date; /** * Created by toutou on 2015/3/ ...
- iOS 刚刚,几分钟前,几小时前,几天前,几月前,几年前
- (NSString *)compareCurrentTime:(NSDate*) compareDate { NSTimeInterval timeInterval = [compareDate ...
- js如何计算当前日期的前一个月和后一个月?
<div class="query_title_div"><img src="../../images/task/before.png"/&g ...
- javascript 添加行,删除行,datepicker获取当前日期和上一个月日期并设置格式,笔记
$(function () { getdatepicker(); today(); getPreMonth(); getdatetimepicker(); }); function today(){ ...
随机推荐
- chatdet用法
1. 下载chardet 2. 在命令提示符里转到chardet的存放目录,执行python setup.py install 3. 在代码中用 import chardet 导入模块 4. 用法:c ...
- 51nod 1352:集合计数
1352 集合计数 基准时间限制:1 秒 空间限制:131072 KB 分值: 20 难度:3级算法题 收藏 关注 给出N个固定集合{1,N},{2,N-1},{3,N-2},...,{N-1,2 ...
- 安装scrapy框架报错是常见问题
还好,本人只碰到其中一个bug,以下是此次安装经验 环境 py3.4 windows7 64位 安装有VS2010 pip包管理(pycharm) 报错信息 安装lxml过程中报错:error: co ...
- Exchange 2003 限制用户向外网发送邮件
在企业系统中,邮件系统起着举足轻重的作用.同时为了符合企业的安全性策略,在Exchange 2003 中,常常需要限制某个用户或组向外网发送邮件,只允许此邮件在内部收发.下面我们以实验的方式来分析在E ...
- AS-PATH(路径属性)路由路径欺骗术
AS-PATH(路径属性)路由路径欺骗术: ①:抓取感兴趣流量——前缀与访问 ②:创建路由地图 ③:路由地图第一法则——permit 10 ④:在第一法则中,匹配(感兴趣流量) ⑤:设置 路径欺骗术— ...
- ZOJ - 2671 Cryptography(线段树+求区间矩阵乘积)
题意:已知n个矩阵(下标从1开始),求下标x~y区间矩阵的乘积.最多m次询问,n ( 1 <= n <= 30,000) and m ( 1 <= m <= 30,000). ...
- laravel自动加载公共文件
1. 创建 functions.php 在 app/Common/(目录自己起名字)下新建一个文件 functions.php,在内部补充如下代码: <?php /** 数据返回 * 返回jso ...
- 洛谷 P1833 樱花
题目传送门 解题思路: 就是完全背包和多重背包的混合.处理时间的时候注意一下就行了 AC代码: #include<iostream> #include<cstdio> usin ...
- LeetCode简单题汇总
1.两个数之和 给出一个整数数组,请在数组中找出两个加起来等于目标值的数, 你给出的函数twoSum 需要返回这两个数字的下标(index1,index2),需要满足 index1 小于index ...
- 深入X64架构(翻译)
| 本人只是原创翻译,而且翻译也不一定好,纯当锻炼.内容如果英文好的同学,建议直接去看英文原版,比较爽. NBAOL系列2代产品是 windows平台64位的应用程序,在技术测试过程中,遇到一些cra ...