JavaScript时间工具类
/**
* JavaScript日期工具类
* @author ZhangLp
*/ /**
* 获取当前月的第一天
*/
function getCurrentMonthFirst(){
var date=new Date();
date.setDate(1);
return date;
}
/**
* 获取当前月的最后一天
*/
function getCurrentMonthLast(){
var date=new Date();
var currentMonth=date.getMonth();
var nextMonth=++currentMonth;
var nextMonthFirstDay=new Date(date.getFullYear(),nextMonth,1);
var oneDay=1000*60*60*24;
return new Date(nextMonthFirstDay-oneDay);
}
/**
* 获取上个月的第一天
*/
function lastMonthFirst(){
return new Date(getCurrentMonthFirst().setMonth(getCurrentMonthFirst().getMonth()-1));
}
/**
* 获取上个月最后一天
* @return
*/
function lastMonthLast(){
return new Date(getCurrentMonthFirst().setDate(getCurrentMonthFirst().getDate()-1));
}
/**
* 获取上上个月的第一天
*/
function lastLastMonthFirst(){
return new Date(lastMonthFirst().setMonth(lastMonthFirst().getMonth()-1));
}
/**
* 获取上上个月最后一天
* @return
*/
function lastLastMonthLast(){
return new Date(lastMonthFirst().setDate(lastMonthFirst().getDate()-1));
}
/**
* 上N个月的第一天(N为变量)
* 获取当前月之前倒退到第n个月的第一天(例如现在是10月12号,n=2,beforeNMonthFirst(2)意思是获取上上个月的第一天)
*/
function beforeNMonthFirst(N){
var forCurrMonthFirst = getCurrentMonthFirst();
for(var i=0;i<N;i++){
forCurrMonthFirst=new Date(forCurrMonthFirst.setMonth(forCurrMonthFirst.getMonth()-1));
}
return forCurrMonthFirst;
}
/**
* 上N个月的最后一天(N为变量)
* 获取当前月之前倒退到第n个月的最后一天(例如现在是10月12号,n=2,beforeNMonthFirst(2)意思是获取上上个月的最后一天)
* @return
*/
function beforeNMonthLast(N){
//获取n-1个月前的第一天
var M = parseInt(N - 1);
var forCurrMonthFirst = getCurrentMonthFirst();
for(var i=0;i<M;i++){
forCurrMonthFirst=new Date(forCurrMonthFirst.setMonth(forCurrMonthFirst.getMonth()-1));
}
return new Date(forCurrMonthFirst.setDate(forCurrMonthFirst.getDate()-1));;
}
/**
* @description 对Date的扩展,将 Date 转化为指定格式的String
* 月(M)、日(d)、小时(h)、分(m)、秒(s)、季度(q) 可以用 1-2 个占位符,
* 年(y)可以用 1-4 个占位符,毫秒(S)只能用 1 个占位符(是 1-3 位的数字)
* 例子:
* (new Date()).Format("yyyy-MM-dd hh:mm:ss.S") ==> 2006-07-02 08:09:04.423
* (new Date()).Format("yyyy-M-d h:m:s.S") ==> 2006-7-2 8:9:4.18
* @param fmt
* @return
*/
Date.prototype.Format = function(fmt) { //author: meizz
var o = {
"M+" : this.getMonth() + 1, //月份
"d+" : this.getDate(), //日
"h+" : this.getHours(), //小时
"m+" : this.getMinutes(), //分
"s+" : this.getSeconds(), //秒
"q+" : Math.floor((this.getMonth() + 3) / 3), //季度
"S" : this.getMilliseconds()
//毫秒
};
if (/(y+)/.test(fmt))
fmt = fmt.replace(RegExp.$1, (this.getFullYear() + "")
.substr(4 - RegExp.$1.length));
for ( var k in o)
if (new RegExp("(" + k + ")").test(fmt))
fmt = fmt.replace(RegExp.$1, (RegExp.$1.length == 1) ? (o[k])
: (("00" + o[k]).substr(("" + o[k]).length)));
return fmt;
}
/**
* 获取前X天或者后X天
* @param AddDayCount
* @demo 今天:GetDateStr(0) 明天:GetDateStr(1) 昨天:GetDateStr(-1) 其它的以此类推
*/
function GetDateStr(AddDayCount) {
var dd = new Date();
dd.setDate(dd.getDate()+AddDayCount);//获取AddDayCount天后的日期
var y = dd.getFullYear();
var m = dd.getMonth()+1;//获取当前月份的日期
var d = dd.getDate();
return y+"-"+m+"-"+d;
}
//计算月份差
function getMonthNumber(date1,date2){
//默认格式为"20030303",根据自己需要改格式和方法
var year1 = date1.substr(0,4);
var year2 = date2.substr(0,4);
var month1 = date1.substr(4,2);
var month2 = date2.substr(4,2);
var len=(year2-year1)*12+(month2-month1);
return len;
}
var len=getMonthNumber('200403','200504');
//alert('2003-03-03'.replace(/-/g, "/"));
//alert('2003-03-03'.replace(/-/g, ""));
if(len<0){
alert("查询起始月份不能比查询终止月份大.");
}else if(len >11){
alert("查询月份时间段不能超过12个月.");
}
//计算天数差
function getDayNumber(date1,date2){
//默认格式为"20030303",根据自己需要改格式和方法
var year1 = date1.substr(0,4);
var year2 = date2.substr(0,4);
var month1 = date1.substr(4,2);
var month2 = date2.substr(4,2);
var day1 = date1.substr(6,2);
var day2 = date2.substr(6,2);
temp1 = year1+"/"+month1+"/"+day1;
temp2 = year2+"/"+month2+"/"+day2;
var dateaa= new Date(temp1);
var datebb = new Date(temp2);
var date = datebb.getTime() - dateaa.getTime();
var time = Math.floor(date / (1000 * 60 * 60 * 24));
alert(time);
}
getDayNumber('20030303','20040503');
//。。。持续补充更新中。。。
JavaScript时间工具类的更多相关文章
- javascript常用工具类整理(copy)
JavaScript常用工具类 类型 日期 数组 字符串 数字 网络请求 节点 存储 其他 1.类型 isString (o) { //是否字符串 return Object.prototype.to ...
- 代码片段:基于 JDK 8 time包的时间工具类 TimeUtil
摘要: 原创出处:www.bysocket.com 泥瓦匠BYSocket 希望转载,保留摘要,谢谢! “知识的工作者必须成为自己时间的首席执行官.” 前言 这次泥瓦匠带来的是一个好玩的基于 JDK ...
- Java日期工具类,Java时间工具类,Java时间格式化
Java日期工具类,Java时间工具类,Java时间格式化 >>>>>>>>>>>>>>>>>&g ...
- 小记Java时间工具类
小记Java时间工具类 废话不多说,这里主要记录以下几个工具 两个时间只差(Data) 获取时间的格式 格式化时间 返回String 两个时间只差(String) 获取两个时间之间的日期.月份.年份 ...
- 超详细的Java时间工具类
package com.td.util; import java.sql.Timestamp; import java.text.ParseException; import java.text.Pa ...
- java时间工具类
在项目中,很多地方需要根据时间获取相应的数据,将时间格式化,或者时间比较等相关操作.一个良好的工具类不仅可以减少代码冗余,还能促进业务处理,加快进度. /** * @author: lxw * @Da ...
- java/javascript 时间操作工具类
一.java 时间操作工具类 import org.springframework.util.StringUtils; import java.text.ParseException; import ...
- 基于Java8的日期时间工具类DateTimeFormatter
原文:https://blog.csdn.net/qq_36596145/article/details/85331002 import java.time.Instant; import java. ...
- vue项目工具文件utils.js javascript常用工具类,javascript常用工具类,util.js
vue项目工具文件utils.js :https://blog.csdn.net/Ajaxguan/article/details/79924249 javascript常用工具类,util.js : ...
随机推荐
- C#内存分配学习
CLR内存分配分三大块区域:栈.GC堆.大对象堆. 一.线程堆栈(栈) 用于分配值类型实例.栈由操作系统进行管理,不受GC管理,当值类型不在其作用域(主要是指其所在函数内)时,其所占栈空间自动释放.栈 ...
- 大教堂与集市(The Cathedral and the Bazaar)读书笔记
大教堂与集市The Cathedral and the Bazaar,一本不像计算机方面的计算机书籍 命令式管理,适合和奴隶共事目标共识型管理,适合和自由人共事 心性气层 只要眼多,bug好找 黑客开 ...
- POJ3213(矩阵乘法)
PM3 Time Limit: 5000MS Memory Limit: 131072K Total Submissions: 3036 Accepted: 1059 Description ...
- iOS 要定义自己的导航栏button样式Button Image 执行出彩是不一样的与原来的颜色 -解
在相机闪光灯,在导航栏中自己定义"闪"样式.点击变换的图像期望,但一直没有变化.原来是该条款的Global Tint颜色.因此,系统会自己主动改变图片的颜色Global Tint颜 ...
- 随着MapReduce job实现去加重,多种输出文件夹
总结以往的工作中遇到的一个问题. 背景: 操作和维护与scribe从apacheserver一再被推到日志记录,所以在这里ETL处理正在进行的重.有根据业务的输出类型是用于多文件夹一个需求.方便挂分区 ...
- nginx conf by linux kernel
#nginx conf by linux kernel net.ipv4.tcp_max_tw_buckets = 6000 net.ipv4.ip_local_port_range = 1024 6 ...
- Vim常见操作汇总
1.跳到文本的最后一行:按“G”,即“shift+g”2.跳到最后一行的最后一个字符 : 先重复1的操作即按“G”,之后按“$”键,即“shift+4”.3.跳到第一行的第一个字符:先按两次“g”,4 ...
- android JNI 简单demo(2)它JNI demo 写
android JNI 简单demo(2)它JNI demo 写 一.搭建Cygwin 环境:http://blog.csdn.net/androidolblog/article/details/25 ...
- svn import usage and not import .so file
svn import usage: svn import PATH URL 可以不检查仓库来实现.入文件或目录 for example: svn import /home/scott/xxx svn: ...
- Android Studio简单设置(转)
Android Studio 简单设置 界面设置 默认的 Android Studio 为灰色界面,可以选择使用炫酷的黑色界面.Settings --> Appearance --> Th ...