/**
* 对Date的扩展,将Date转化为指定格式的String
* 年(y)、季度(q)、月(M)、日(d)、小时(h)、分(m)、秒(s)可以用1-2个占位符
* 示例:
* FormatDateCNT(new Date(),"yyyy-MM-dd hh:mm:ss")
* @param obj 具体的日期
* @param type 日期格式 如:yyyy年MM月dd日
*/
function FormatDateCNT(obj,type){
var myDate = new Date(obj);
var y = myDate.getFullYear();
var q = Math.floor((myDate.getMonth()+3)/3);
var M = ("0"+(myDate.getMonth()+1)).slice(-2);
var d = ("0"+myDate.getDate()).slice(-2);
var h = ("0"+myDate.getHours()).slice(-2);
var m = ("0"+myDate.getMinutes()).slice(-2);
var s = ("0"+myDate.getSeconds()).slice(-2);
var mi = ("00"+myDate.getMilliseconds()).slice(-3);
var current_date = '';
if(type=="yyyy-MM-dd"){
current_date = y + '年' + M + '月' + d + '日';
}else if(type=="yyyy-MM-dd HH:mm:ss"){
current_date = y + '年' + M + '月' + d + '日 ' + h + '时' + m + '分' + s + '秒';
}
return current_date;
} /**
* 对Date的扩展,将Date转化为指定格式的String
* 年(y)、季度(q)、月(M)、日(d)、消失(h)、分(m)、秒(s)、毫秒(S)可以用1-2个占位符
* 示例:
* FormatDateTime(new Date(),"yyyy-MM-dd hh:mm:ss.s")
* @param obj 具体的日期
* @param type 日期格式 如:yyyy-MM-dd
*/
function FormatDateTime(obj,type){
if(!obj){return obj;}
var myDate = new Date(obj);
var y = myDate.getFullYear();
var q = Math.floor((myDate.getMonth()+3)/3);
var M = ("0"+(myDate.getMonth()+1)).slice(-2);
var d = ("0"+myDate.getDate()).slice(-2);
var h = ("0"+myDate.getHours()).slice(-2);
var m = ("0"+myDate.getMinutes()).slice(-2);
var s = ("0"+myDate.getSeconds()).slice(-2);
var mi = ("00"+myDate.getMilliseconds()).slice(-3);
var current_date = '';
if(type=="yyyy-MM-dd"){
current_date = y + '-' + M + '-' + d;
}else if(type=="yyyy-MM-dd HH:mm:ss"){
current_date = y + '-' + M + '-' + d + ' ' + h + ':' + m + ':' + s;
}else if(type=="yyyy-MM-dd HH:mm:ss.s"){
current_date = y + '-' + M + '-' + d + ' ' + h + ':' + m + ':' + s + '.' + mi;
}else if(type=="yyyy/MM/dd"){
current_date = y + '/' + M + '/' + d;
}else if(type=="yyyy/MM/dd HH:mm:ss"){
current_date = y + '/' + M + '/' + d + ' ' + h + ':' + m + ':' + s;
}else if(type=="yyyy/MM/dd HH:mm:ss.s"){
current_date = y + '/' + M + '/' + d + ' ' + h + ':' + m + ':' + s + '.' + mi;
}
return current_date;
} /**
*
* @param obj 具体的日期:yyyy-mm-dd
* @param days 天数 如:2
*/
function addDate(obj,days)
{
var d = new Date(obj);
d.setDate(d.getDate()+days);
var m =d.getMonth()+1;
return d.getFullYear()+"-"+m+"-"+d.getDate();
}
/**
*
* @param obj 具体的日期:yyyy-mm-dd
* @param obj2 具体的日期:yyyy-mm-dd
*/
function retDate(obj,obj2)
{
var d = new Date(obj);
var d2 = new Date(obj2);
d.setFullYear(d.getFullYear()-d2.getFullYear());
return d.getFullYear()
}
/**
*
* @param obj1 具体的日期 yyyy-mm-dd
* @param obj2 具体的日期 yyyy-mm-dd
*/
function compDate(obj,obj1)
{
var flag = false;
var aDate = new Date(Date.parse(obj.replace(/-/g,"/")));
var bDate = new Date(Date.parse(obj1.replace(/-/g,"/")));
if(aDate < bDate)
flag = true;
return flag;
}
/**
* 年度相减 相差xx年
* @param obj1 比较日期 2017-02-28
* @param obj2 生日日期 2010-02-28
*/
function yearsubstract(obj,obj1)
{
var adate = obj.split("-");
var bdate = obj1.split("-");
adate = parseInt(adate[0]);
bdate = parseInt(bdate[0]);
return Math.abs(bdate-adate);
}
/**
* 年度相加
* @param obj1 比较日期 2017-02-28
* @param obj2 生日日期 2010-02-28
*/
function yearsubadd(obj,obj1)
{
var adate = obj.split("-");
var bdate = obj1.split("-");
adate = parseInt(adate[0]);
bdate = parseInt(bdate[0]);
return Math.abs(bdate+adate);
}
/**
* 月份相减 相差xx个月
* @param obj1 具体的日期 yyyy-mm-dd
* @param obj2 具体的日期 yyyy-mm-dd
*/
function monthsubstract(obj,obj1)
{
var adate = obj.split("-");
var bdate = obj1.split("-");
adate = parseInt(adate[0])*12+parseInt(adate[1]);
bdate = parseInt(bdate[0])*12+parseInt(bdate[1]);
return Math.abs(bdate-adate);
}
/**
* 天数相减 相差xx天
* @param obj1 具体的日期 yyyy-mm-dd
* @param obj2 具体的日期 yyyy-mm-dd
*/
function daysubstract(obj,obj1)
{
var adate = new Date(obj.replace(/-/g,"/"));
var bdate = new Date(obj1.replace(/-/g,"/")); return (bdate.getTime()-adate.getTime())/1000/60/60/24;
} /**
*
* @param obj1 具体的日期 yyyy-mm-dd
* @param obj2 具体的日期 yyyy-mm-dd
*/
function gfGetCalcPlcYear(fromdate,todate) {
var returnyear;
var fromdate = new Date(fromdate);
var todate = new Date(todate);
var birthYear = fromdate.getFullYear();
var birthMonth = fromdate.getMonth();
var birthDay = fromdate.getDay();
var nowYear = todate.getFullYear();
var nowMonth = todate.getMonth();
var nowDay = todate.getDay();
if (nowYear == birthYear) {
returnyear = 0;//同年 则为0岁
} else {
var ageDiff = nowYear - birthYear; //年之差
if (ageDiff > 0) {
if (nowMonth == birthMonth) {
var dayDiff = nowDay - birthDay;//日之差
if (dayDiff < 0) {
returnyear = ageDiff - 1;
} else {
returnyear = ageDiff;
}
} else {
var monthDiff = nowMonth - birthMonth;//月之差
if (monthDiff < 0) {
returnyear = ageDiff - 1;
} else {
returnyear = ageDiff;
}
}
} else {
returnyear = -1;//返回-1 表示出生日期输入错误 晚于今天
}
}
return returnyear;//返回周岁年龄
} function calcage(fromdate,todate){
var returnyear;
var fromarry = fromdate.split("-");
var toarry = todate.split("-");
var birthYear = parseInt(fromarry[0]);
var birthMonth = parseInt(fromarry[1]);
var birthDay = parseInt(fromarry[2]);
var nowYear = parseInt(toarry[0]);
var nowMonth = parseInt(toarry[1]);
var nowDay = parseInt(toarry[2]);
if (nowYear == birthYear) {
returnyear = 0;//同年 则为0岁
} else {
var ageDiff = nowYear - birthYear; //年之差
if (ageDiff > 0) {
if (nowMonth == birthMonth) {
var dayDiff = nowDay - birthDay;//日之差
if (dayDiff < 0) {
returnyear = ageDiff - 1;
} else {
returnyear = ageDiff;
}
} else {
var monthDiff = nowMonth - birthMonth;//月之差
if (monthDiff < 0) {
returnyear = ageDiff - 1;
} else {
returnyear = ageDiff;
}
}
} else {
returnyear = -1;//返回-1 表示出生日期输入错误 晚于今天
}
}
return returnyear;//返回周岁年龄
} //日期date 加年数 year
function IncYear(tdate, year){
var nowdate = new Date(tdate);
nowdate.setFullYear(nowdate.getFullYear()+year);
nowdate.setDate(nowdate.getDate()-1);
return nowdate;
}

Js之DateFormat工具类的更多相关文章

  1. vue项目工具文件utils.js javascript常用工具类,javascript常用工具类,util.js

    vue项目工具文件utils.js :https://blog.csdn.net/Ajaxguan/article/details/79924249 javascript常用工具类,util.js : ...

  2. JS实现自定义工具类,隔行换色、复选框全选、隔行高亮等

    很多功能都可以放在js的工具类中,在使用的时候直接调用 本次实现的功能包括: /** 0.当点击表的整行的任意位置时,第一列的复选框或者单选框均选中  1.隔行换色 2.复选框的全选效果 3.实现表格 ...

  3. js格式化日期工具类

    就是一个工具类  开箱即用 传进一个指定的参数,格式化 //将时间戳格式化 function getMyDate(time){ if(typeof(time)=="undefined&quo ...

  4. DateFormat工具类

    import java.text.ParseException;import java.text.SimpleDateFormat;import java.util.Date;import java. ...

  5. 第三章 线程安全的DateFormat工具类

    1.使用threadLocal包装DateFormat(太复杂,不推荐) 2.使用org.apache.commons.lang3.time.DateFormatUtils下的方法(推荐) DateF ...

  6. js的一些工具类

    //写入cookie function setCookie(name, value) {     var Days = 30; //此 cookie 将被保存 30 天     var exp = n ...

  7. js 实现 map 工具类

    /* * MAP对象,实现MAP功能 * * 接口: * size() 获取MAP元素个数 * isEmpty() 判断MAP是否为空 * clear() 删除MAP所有元素 * put(key, v ...

  8. 第一章 Java工具类目录

    在这一系列博客中,主要是记录在实际开发中会常用的一些Java工具类,方便后续开发中使用. 以下的目录会随着后边具体工具类的添加而改变. 浮点数精确计算 第二章 Java浮点数精确计算 crc32将任意 ...

  9. js常用工具类.

    一些js的工具类 复制代码 /** * Created by sevennight on 15-1-31. * js常用工具类 */ /** * 方法作用:[格式化时间] * 使用方法 * 示例: * ...

随机推荐

  1. ssm框架的小总结

    一.mybatis框架 mybatis框架主要就是完成持久层的实现,简化了持久层的开发, 1.首先是配置文件的编写,我们这里就命名为mybatis-config.xml,先配置文件头,然后加载连接数据 ...

  2. 2019牛客暑期多校训练营(第七场)-H Pair(数位dp)

    题目链接:https://ac.nowcoder.com/acm/contest/887/H 题意:给定A,B,C,求有多少对(x,y)满足x&y>C或者x^y<C,其中1< ...

  3. [转帖]SSH原理与运用(一):远程登录

    http://www.ruanyifeng.com/blog/2011/12/ssh_remote_login.html 写的很好.. 自己才简单明白了一点东西.. SSH是每一台Linux电脑的标准 ...

  4. python的异常处理机制

    异常机制己经成为衡量一门编程语言是否成熟的标准之一,使用异常处理机制的 Python 程序有更好的容错性,更加健壮. 对于计算机程序而言,情况就更复杂了一一没有人能保证自己写的程序永远不会出辛苦!就算 ...

  5. Python 常用单词

    Python常用单词(英文好的人自动忽略) 单词 发音 翻译 作用 print 普润特 打印 显示我们想要查看的内容 input 因普特 输入 获取用户输入的一些内容 int 印特 整型 将有引号的数 ...

  6. Docker-PS命令解析

    查看 docker 容器,必然要用到 docker ps 命令.其基本格式为: docker ps [OPTIONS] 关键在于 OPTIONS(选项): 1 常见用法 1. 最常见的用法 $ doc ...

  7. 数值优化(Numerical Optimization)学习系列-无梯度优化(Derivative-Free Optimization)

    数值优化(Numerical Optimization)学习系列-无梯度优化(Derivative-Free Optimization) 2015年12月27日 18:51:19 下一步 阅读数 43 ...

  8. date和time

    time和date两个函数在Lua中实现所有的时钟查询功能.函数time在没有参数时返回当前时钟的数值. t=os.date()print(t) 05/07/19 16:49:18 --------- ...

  9. C#发送Outlook邮件(仅SMTP版本)

    先表明Outlook的参数:网址:https://support.office.com/zh-cn/article/Outlook-com-%E7%9A%84-POP%E3%80%81IMAP-%E5 ...

  10. 如何从git上批量拉取本地当前分支的所有代码

    1 我本地有一个文件_netrc文件里面存储这git的相关信息,包括用户名和密码 你可以根据自己的git相关信息配置自己的信息 2 我当前的分支是dev,我要拉取当前分支下的所有代码,编写shell脚 ...