JS对日期操作封装代码实例


Posted in Javascript onNovember 08, 2019

这篇文章主要介绍了JS对日期操作封装代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

格式化日期:

/**
 * 格式化日期
 * @param fmt 例如:yyyy-MM-dd 等
 * @returns {*}
 * @constructor
 */
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;
};

得到日期年月日等 加数字后的日期:

/**
 * 得到日期年月日等 加数字后的日期
 * @param interval 指定类型 例如 y:代表年
 * @param number 需要增加 || 减少的 值
 * @param fmt 格式化日期 可选参数 默认:Thu Oct 24 2019 16:57:12 GMT+0800 (中国标准时间) 格式
 * @returns {Date}
 */
Date.prototype.dateAdd = function(interval,number,fmt)
{
  var d = this;
  var k={'y':'FullYear', 'q':'Month', 'm':'Month', 'w':'Date', 'd':'Date', 'h':'Hours', 'n':'Minutes', 's':'Seconds', 'ms':'MilliSeconds'};
  var n={'q':3, 'w':7};
  eval('d.set'+k[interval]+'(d.get'+k[interval]+'()+'+((n[interval]||1)*number)+')');
  if (fmt){
    return d.Format(fmt);
  }
  return d;
};

计算两日期相差的日期年月日等:

/**
 * 计算两日期相差的日期年月日等
 * @param interval 指定查看的类型 例如:y:代表年
 * @param objDate2 objDate2 < this = 负数
 * @returns {*}
 */
Date.prototype.dateDiff = function(interval,objDate2)
{
  var d=this, i={}, t=d.getTime(), t2=objDate2.getTime();
  i['y']=objDate2.getFullYear()-d.getFullYear();
  i['q']=i['y']*4+Math.floor(objDate2.getMonth()/4)-Math.floor(d.getMonth()/4);
  i['m']=i['y']*12+objDate2.getMonth()-d.getMonth();
  i['ms']=objDate2.getTime()-d.getTime();
  i['w']=Math.floor((t2+345600000)/(604800000))-Math.floor((t+345600000)/(604800000));
  i['d']=Math.floor(t2/86400000)-Math.floor(t/86400000);
  i['h']=Math.floor(t2/3600000)-Math.floor(t/3600000);
  i['n']=Math.floor(t2/60000)-Math.floor(t/60000);
  i['s']=Math.floor(t2/1000)-Math.floor(t/1000);
  return i[interval];
};

演示:

console.log(new Date('2019-10-23').dateAdd('y',1,'yyyy-MM-dd')) 结果为:2020-10-23

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
JavaScript创建命名空间(namespace)的最简实现
Dec 11 Javascript
理解Javascript_11_constructor实现原理
Oct 18 Javascript
Jquery练习之表单验证实现代码
Dec 14 Javascript
目前流行的JavaScript库的介绍及对比
Sep 29 Javascript
js 数组操作之pop,push,unshift,splice,shift
Jan 29 Javascript
JavaScript 实现完美兼容多浏览器的复制功能代码
Apr 28 Javascript
在JavaScript中call()与apply()区别
Jan 22 Javascript
js一维数组、多维数组和对象的混合使用方法
Apr 03 Javascript
javascript十六进制数字和ASCII字符之间的转换方法
Dec 27 Javascript
JavaScript实现经典排序算法之插入排序
Dec 28 Javascript
JS实现的Unicode编码转换操作示例
Apr 28 Javascript
小程序实现短信登录倒计时
Jul 12 Javascript
vue之组件内监控$store中定义变量的变化详解
Nov 08 #Javascript
js 递归json树实现根据子id查父id的方法分析
Nov 08 #Javascript
BootstrapValidator验证用户名已存在(ajax)
Nov 08 #Javascript
微信小程序在text文本实现多种字体样式
Nov 08 #Javascript
浅谈vuex的基本用法和mapaction传值问题
Nov 08 #Javascript
微信小程序select下拉框实现源码
Nov 08 #Javascript
使用kbone解决Vue项目同时支持小程序问题
Nov 08 #Javascript
You might like
Function eregi is deprecated (解决方法)
2013/06/21 PHP
php的一个简单加密解密代码
2014/01/14 PHP
PHP_NETWORK_GETADDRESSES: GETADDRINFO FAILED问题解决办法
2014/05/04 PHP
php使用cookie显示用户上次访问网站日期的方法
2015/01/26 PHP
thinkphp在php7环境下提示Cannot use ‘String’ as class name as it is reserved的解决方法
2016/09/30 PHP
PHP读取文件或采集时解决中文乱码
2021/03/09 PHP
Firefox window.close()的使用注意事项
2009/04/11 Javascript
jQuery学习笔记之控制页面实现代码
2012/02/27 Javascript
js使用eval解析json(js中使用json)
2014/01/17 Javascript
浅析node.js中close事件
2014/11/26 Javascript
JS实现网页上随机产生超链接地址的方法
2015/11/09 Javascript
分享几种比较简单实用的JavaScript tabel切换
2015/12/31 Javascript
使用node+vue.js实现SPA应用
2016/01/28 Javascript
JavaScript中instanceof运算符的使用示例
2016/06/08 Javascript
利用js编写响应式侧边栏
2016/09/17 Javascript
微信小程序 swiper组件构建轮播图的实例
2017/09/20 Javascript
浅谈vue,angular,react数据双向绑定原理分析
2017/11/28 Javascript
vue集成chart.js的实现方法
2019/08/20 Javascript
python中readline判断文件读取结束的方法
2014/11/08 Python
Python中表达式x += y和x = x+y 的区别详解
2017/06/20 Python
利用aardio给python编写图形界面
2017/08/21 Python
python的exec、eval使用分析
2017/12/11 Python
pyqt5 禁止窗口最大化和禁止窗口拉伸的方法
2019/06/18 Python
Python基于BeautifulSoup和requests实现的爬虫功能示例
2019/08/02 Python
Python使用itchat模块实现简单的微信控制电脑功能示例
2019/08/26 Python
python字符串格式化方式解析
2019/10/19 Python
六种酷炫Python运行进度条效果的实现代码
2020/07/17 Python
AmazeUI 加载进度条的实现示例
2020/08/20 HTML / CSS
英国男女豪华配饰和礼品网站:Black.co.uk
2020/02/28 全球购物
澳大利亚领先的时尚内衣零售商:Bras N Things
2020/07/28 全球购物
阿里巴巴Oracle DBA笔试题答案-备份恢复类
2013/11/20 面试题
汽车服务工程专业自荐信
2014/09/02 职场文书
小学语文教师研修日志
2015/11/13 职场文书
2016中秋节晚会开场白
2015/11/26 职场文书
如何做好员工培训计划?
2019/07/09 职场文书
浅谈为什么我的 z-index 又不生效了
2022/07/15 HTML / CSS