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入门教程(11) js事件处理
Jan 31 Javascript
Javascript数组的排序 sort()方法和reverse()方法
Jun 04 Javascript
纯css+js写的一个简单的tab标签页带样式
Jan 28 Javascript
RequireJS入门一之实现第一个例子
Sep 30 Javascript
js小数计算小数点后显示多位小数的实现方法
May 30 Javascript
JS限制条件补全问题实例分析
Dec 16 Javascript
js和jquery中获取非行间样式
May 05 jQuery
anime.js 实现带有描边动画效果的复选框(推荐)
Dec 24 Javascript
angular 组件通信的几种实现方式
Jul 13 Javascript
微信小程序表单验证form提交错误提示效果
Jun 19 Javascript
layui 富文本赋值,取值,取纯文本值的实例
Sep 18 Javascript
javascript设计模式 ? 模板方法模式原理与用法实例分析
Apr 23 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
使用cookie实现统计访问者登陆次数
2013/06/08 PHP
如何解决CI框架的Disallowed Key Characters错误提示
2013/07/05 PHP
理解PHP中的stdClass类
2014/04/18 PHP
详解PHP处理密码的几种方式
2016/11/30 PHP
ThinkPHP5与单元测试PHPUnit使用详解
2020/02/23 PHP
javascript Excel操作知识点
2009/04/24 Javascript
jQuery开发者都需要知道的5个小技巧
2010/01/08 Javascript
javascript 函数调用的对象和方法
2010/07/01 Javascript
JSONP 跨域访问代理API-yahooapis实现代码
2012/12/02 Javascript
Javascript技术栈中的四种依赖注入详解
2016/02/23 Javascript
Jquery zTree 树控件异步加载操作
2016/02/25 Javascript
极力推荐一款小巧玲珑的可视化编辑器bootstrap-wysiwyg
2016/05/27 Javascript
js实现文字向上轮播功能
2017/01/13 Javascript
Bootstrap Table使用整理(五)之分页组合查询
2017/06/09 Javascript
bootstrap 通过加减按钮实现输入框组功能
2017/11/15 Javascript
webpack vue项目开发环境局域网访问方法
2018/03/20 Javascript
微信小程序之下拉列表实现方法解析(附完整源码)
2019/08/23 Javascript
[48:11]完美世界DOTA2联赛 Magma vs GXR 第二场 11.07
2020/11/10 DOTA
python通过floor函数舍弃小数位的方法
2015/03/17 Python
MySQL中表的复制以及大型数据表的备份教程
2015/11/25 Python
python网络爬虫学习笔记(1)
2018/04/09 Python
keras 多任务多loss实例
2020/06/22 Python
python转化excel数字日期为标准日期操作
2020/07/14 Python
如何基于Python Matplotlib实现网格动画
2020/07/20 Python
Pytorch1.5.1版本安装的方法步骤
2020/12/31 Python
CSS3 实现的加载动画
2020/12/07 HTML / CSS
HTML5到底会有什么发展?HTML5的前景展望
2015/07/07 HTML / CSS
美国婚戒购物网站:Anjays Designs
2017/06/28 全球购物
韩国江南富人区高端时尚百货商场:Galleria(格乐丽雅)
2018/03/27 全球购物
Crucial英睿达法国官网:内存条及SSD固态硬盘升级
2018/07/13 全球购物
本科生学习总结的自我评价
2013/10/02 职场文书
婚前协议书范本
2014/04/15 职场文书
创业计划书之情侣餐厅
2019/09/29 职场文书
Nginx配置并兼容HTTP实现代码解析
2021/03/31 Servers
php去除数组中为0的元素的实例分析
2021/11/17 PHP
python获取带有返回值的多线程
2022/05/02 Python