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 相关文章推荐
一段利用WSH获取登录时间的jscript代码
May 11 Javascript
Jquery上传插件 uploadify v3.1使用说明
Jun 18 Javascript
ie下jquery.getJSON的缓存问题的处理方法
Mar 29 Javascript
UpdatePanel和Jquery冲突的解决方法
Apr 01 Javascript
浅谈javascript中基本包装类型
Jun 03 Javascript
轻松学习jQuery插件EasyUI EasyUI创建树形菜单
Nov 30 Javascript
node.js插件nodeclipse安装图文教程
Oct 19 Javascript
用js读写cookie的简单方法(推荐)
Aug 08 Javascript
详解Vue使用 vue-cli 搭建项目
Apr 20 Javascript
原生js获取left值和top值的三种方法
Aug 02 Javascript
angularJS的radio实现单项二选一的使用方法
Feb 28 Javascript
针对Vue路由history模式下Nginx后台配置操作
Oct 22 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
PHP中$_SERVER的详细参数与说明
2008/07/29 PHP
解决微信授权回调页面域名只能设置一个的问题
2016/12/11 PHP
Laravel多用户认证系统示例详解
2018/03/13 PHP
laravel + vue实现的数据统计绘图(今天、7天、30天数据)
2018/07/31 PHP
javascript检测页面是否缩放的小例子
2013/05/16 Javascript
zTree插件之多选下拉菜单实例代码
2013/11/06 Javascript
JS获取各种浏览器窗口大小的方法
2014/01/14 Javascript
jQuery中insertAfter()方法用法实例
2015/01/08 Javascript
jQuery大于号(&gt;)选择器的作用解释
2015/01/13 Javascript
JQuery基础语法小结
2015/02/27 Javascript
JavaScript获取当前cpu使用率的方法
2015/12/15 Javascript
微信小程序 实战小程序实例
2016/10/08 Javascript
JS 在数组指定位置插入/删除数据的方法
2017/01/12 Javascript
JavaScript实现经纬度转换成地址功能
2017/03/28 Javascript
AngularJS表单验证功能分析
2017/05/26 Javascript
Angular 4依赖注入学习教程之Injectable装饰器(六)
2017/06/04 Javascript
微信小程序 蓝牙的实现实例代码
2017/06/27 Javascript
老生常谈Bootstrap媒体对象
2017/07/06 Javascript
使用VUE+iView+.Net Core上传图片的方法示例
2019/01/04 Javascript
JavaScript实现多层颜色选项卡嵌套
2020/09/21 Javascript
[01:54]TI4西雅图DOTA2选手欢迎晚宴 现场报道
2014/07/08 DOTA
Python可变参数函数用法实例
2015/07/07 Python
python简单实现刷新智联简历
2016/03/30 Python
Python算法应用实战之栈详解
2017/02/04 Python
python在openstreetmap地图上绘制路线图的实现
2019/07/11 Python
Python调用graphviz绘制结构化图形网络示例
2019/11/22 Python
python爬虫添加请求头代码实例
2019/12/28 Python
解决reload(sys)后print失效的问题
2020/04/25 Python
Python selenium键盘鼠标事件实现过程详解
2020/07/28 Python
Numpy实现卷积神经网络(CNN)的示例
2020/10/09 Python
Python脚本调试工具安装过程
2021/01/11 Python
在网络中有两台主机A和B,并通过路由器和其他交换设备连接起来,已经确认物理连接正确无误,怎么来测试这两台机器是否连通?如果不通,怎么来判断故障点?怎么排
2014/01/13 面试题
2014年银行员工年终自我评价
2014/09/19 职场文书
材料员岗位职责范本
2015/04/11 职场文书
Ajax实现局部刷新的方法实例
2021/03/31 Javascript