/**
* 对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. Nuxt的动态路由及路由校验入门

    其实动态路由就是带参数的路由.比如我们现在新闻模块下面有很多新闻详情页,这时候就需要动态路由的帮助了. 新闻详细页面我们在news文件夹下面新建了_id.vue的文件,以下划线为前缀的Vue文件就是动 ...

  2. Centos7 安装Jenkins (rpm 方式)

    首先说明本教程基于jenkins 2.183,但是其他版本基本差不多,主要说一下其中比较坑的几点,做一个总结. 1.rpm 包的下载 从官网上下载rpm的速度简直让人不能忍受,所以千万不要去官网下载. ...

  3. 树莓派驱动开发 helloworld

    编写Makefile ifneq ($(KERNELRELEASE),) obj-m := MiniX.o else KDIR := /home/hi/pi/kernel/linux/ all: ma ...

  4. centos7上搭建NFS的实践

    NFS 即network file system 可用于向k8s集群提供持久存储 最小化安装centos后  把网卡设置好了后 1.关闭防火墙 [root@NFS ~]# systemctl stop ...

  5. c#连接Java后台,处理返回的数据

    首先定义共通文件,根据url连接Java后台 class ConntectUtil { public JObject ConsoleApplication(string appID, CustomDa ...

  6. 动画方案 Lottie 学习(一)之基础

    参考 lottie系列文章(一):lottie介绍 lottie系列文章(二):lottie最佳实践 lottie系列文章(三):动画设计规范 lottie系列文章(四):源码分析——svg渲染

  7. [转载]from __future__ import的用法

    一句话概况:这是为了在低版本python中使用高版本特性而引入的,最常用的就是print_function来实现在2.x中使用3.x中的print()命令,从而避免在切换版本时修改代码. https: ...

  8. Ubuntu 忘记系统登录密码,如何修改密码

    Ubuntu 忘记系统登录密码,如何修改密码. 1.重新启动,按ESC键进入Boot Menu,选择recovery mode(一般是第二个选项). 2.在#号提示符下用cat /etc/shadow ...

  9. O027、看nova-scheduler如何选择计算节点

    参考https://www.cnblogs.com/CloudMan6/p/5441782.html   本节重点介绍 nova-scheduler 的调度机制和实现方法:即解决如何选择在那个计算节点 ...

  10. (转)Android刷机的一些知识整理

    刷机概述刷机原因刷机可以升级和破解固件(在Android上:即可以升级系统,更改系统,获取Root权限):破解系统的原因①安装第三方软件不需要签名,不受证书的束缚:②修改系统的文件,达到系统的瘦身,以 ...