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 框架小结 个人工作经验
Jun 13 Javascript
JavaScript高级程序设计 阅读笔记(十四) js继承机制的实现
Aug 14 Javascript
js实现翻页后保持checkbox选中状态的实现方法
Nov 03 Javascript
js调用AJAX时Get和post的乱码解决方法
Jun 04 Javascript
自己动手实现jQuery Callbacks完整功能代码详解
Nov 25 Javascript
JavaScript判断变量是否为空的自定义函数分享
Jan 31 Javascript
BootStrap学习系列之布局组件(下拉,按钮组[toolbar],上拉)
Jan 03 Javascript
详解js中==与===的区别
Jan 08 Javascript
浅谈Angular.js中使用$watch监听模型变化
Jan 10 Javascript
详解win7 cmd执行vue不是内部命令的解决方法
Jul 27 Javascript
使用vue实现简单键盘的示例(支持移动端和pc端)
Dec 25 Javascript
Vue获取页面元素的相对位置的方法示例
Feb 05 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
山进SANGEAN ATS-909X电路分析
2021/03/02 无线电
php feof用来识别文件末尾字符的方法
2010/08/01 PHP
php curl post 时出现的问题解决
2014/01/30 PHP
PHP检测用户是否关闭浏览器的方法
2016/02/14 PHP
PHP实现的通过参数生成MYSQL语句类完整实例
2016/04/11 PHP
Prototype使用指南之selector.js说明
2008/10/26 Javascript
javascript获取网页宽高方法汇总
2015/07/19 Javascript
JS中Array数组学习总结
2017/01/18 Javascript
Angular.JS中的this指向详解
2017/05/17 Javascript
详解vue-cli项目中用json-sever搭建mock服务器
2017/11/02 Javascript
vue项目中用cdn优化的方法
2018/01/03 Javascript
通过webpack引入第三方库的方法
2018/07/20 Javascript
JS实现判断图片是否加载完成的方法分析
2018/07/31 Javascript
element UI upload组件上传附件格式限制方法
2018/09/04 Javascript
详解Vue中的scoped及穿透方法
2019/04/18 Javascript
小程序:授权、登录、session_key、unionId的详解
2019/05/15 Javascript
微信小程序实现页面跳转传递参数(实体,对象)
2019/08/12 Javascript
python实现异步回调机制代码分享
2014/01/10 Python
Python中的pprint折腾记
2015/01/21 Python
Python中实现的RC4算法
2015/02/14 Python
详解Python 数据库 (sqlite3)应用
2016/12/07 Python
Python整型运算之布尔型、标准整型、长整型操作示例
2017/07/21 Python
对Python _取log的几种方式小结
2019/07/25 Python
Python监控服务器实用工具psutil使用解析
2019/12/19 Python
django商品分类及商品数据建模实例详解
2020/01/03 Python
Python Tornado之跨域请求与Options请求方式
2020/03/28 Python
python读取excel数据并且画图的实现示例
2021/02/08 Python
国际书籍零售商:Wordery
2017/11/01 全球购物
Clarria化妆品官方网站:购买天然和有机化妆品系列
2018/04/08 全球购物
后勤部长岗位职责
2013/12/14 职场文书
《美丽的小兴安岭》教学反思
2014/02/26 职场文书
本科毕业自我鉴定
2014/03/20 职场文书
医学专业毕业生推荐信
2014/07/12 职场文书
如何使用php生成zip压缩包
2021/04/21 PHP
Mysql中存储引擎的区别及比较
2021/06/04 MySQL
Python基础之条件语句详解
2021/06/16 Python