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 相关文章推荐
通过Jscript中@cc_on 语句识别IE浏览器及版本的代码
May 07 Javascript
js中如何把字符串转化为对象、数组示例代码
Jul 17 Javascript
jquery实现非叠加式的搜索框提示效果
Jan 07 Javascript
js实现鼠标经过时图片滚动停止的方法
Feb 16 Javascript
基于CSS3和jQuery实现跟随鼠标方位的Hover特效
Jul 25 Javascript
微信小程序 后台登录(非微信账号)实例详解
Mar 31 Javascript
关于HTTP传输中gzip压缩的秘密探索分析
Jan 12 Javascript
JS实现关键词高亮显示正则匹配
Jun 22 Javascript
vue实现与安卓、IOS交互的方法
Nov 02 Javascript
js里面的变量范围分享
Jul 18 Javascript
Vue.js使用axios动态获取response里的data数据操作
Sep 08 Javascript
vue3.0实现插件封装
Dec 14 Vue.js
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脚本
2006/11/26 PHP
PHP Memcached应用实现代码
2010/02/08 PHP
Zend Framework实现留言本分页功能(附demo源码下载)
2016/03/22 PHP
PHPMailer发送邮件
2016/12/28 PHP
JSON格式化输出
2014/11/10 Javascript
jQuery中detach()方法用法实例
2014/12/25 Javascript
Jquery+Ajax+PHP+MySQL实现分类列表管理(上)
2015/10/28 Javascript
使用ionic切换页面卡顿的解决方法
2016/12/16 Javascript
JS实现上传图片的三种方法并实现预览图片功能
2017/07/14 Javascript
js封装成插件的步骤方法
2017/09/11 Javascript
vue2.0 如何把子组件的数据传给父组件(推荐)
2018/01/15 Javascript
微信小程序文章详情页面实现代码
2018/09/10 Javascript
angular 实现下拉列表组件的示例代码
2019/03/09 Javascript
小程序实现搜索框功能
2020/03/26 Javascript
Element ui 下拉多选时新增一个选择所有的选项
2019/08/21 Javascript
Vue中nprogress页面加载进度条的方法实现
2020/11/13 Javascript
vue 中this.$set 动态绑定数据的案例讲解
2021/01/29 Vue.js
[36:33]Ti4 循环赛第四日 附加赛NEWBEE vs Mouz
2014/07/13 DOTA
python函数参数*args**kwargs用法实例
2013/12/04 Python
python出现&quot;IndentationError: unexpected indent&quot;错误解决办法
2017/10/15 Python
浅析Git版本控制器使用
2017/12/10 Python
python爬虫之xpath的基本使用详解
2018/04/18 Python
在pycharm中python切换解释器失败的解决方法
2018/10/29 Python
Python3内置模块pprint让打印比print更美观详解
2019/06/02 Python
django settings.py 配置文件及介绍
2019/07/15 Python
django之状态保持-使用redis存储session的例子
2019/07/28 Python
tensorflow求导和梯度计算实例
2020/01/23 Python
Mixbook加拿大:照片书,照片卡,剪贴簿,年历和日历
2017/02/21 全球购物
猫咪家具:CatsPlay
2018/11/03 全球购物
Berghaus官网:户外服装和设备,防水服
2020/01/17 全球购物
新闻网站实习自我鉴定
2013/09/25 职场文书
党建示范点实施方案
2014/03/12 职场文书
优秀的2014年两会精神解读
2014/03/17 职场文书
创业计划书之DIY自助厨房
2019/09/06 职场文书
创业计划书之农家乐
2019/10/09 职场文书
python装饰器代码解析
2022/03/23 Python