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 相关文章推荐
让ie运行js时提示允许阻止内容运行的解决方法
Oct 24 Javascript
jQuery之网页换肤实现代码
Apr 30 Javascript
js分页代码分享
Apr 28 Javascript
深入理解javascript原型链和继承
Sep 23 Javascript
JavaScript使用pop方法移除数组最后一个元素用法实例
Apr 06 Javascript
JS实现的手机端精简幻灯片效果
Sep 05 Javascript
JS设置随机出现2个数字的实例代码
Jul 19 Javascript
JS继承与闭包及JS实现继承的三种方式
Oct 15 Javascript
AngularJS实现的2048小游戏功能【附源码下载】
Jan 03 Javascript
实例详解Node.js 函数
Jun 10 Javascript
JavaScript错误处理操作实例详解
Jan 04 Javascript
详解js常用分割取字符串的方法
May 15 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
PHP5中虚函数的实现方法分享
2011/04/20 PHP
php中的filesystem文件系统函数介绍及使用示例
2014/02/13 PHP
Zend Framework实现将session存储在memcache中的方法
2016/03/22 PHP
PHP检查网站是否宕机的方法示例
2017/07/24 PHP
javascript Keycode对照表
2009/10/24 Javascript
jquery使用jquery.zclip插件复制对象的实例教程
2013/12/04 Javascript
JQuery EasyUI 数字格式化处理示例
2014/05/05 Javascript
js调试系列 断点与动态调试[基础篇]
2014/06/18 Javascript
推荐5 个常用的JavaScript调试技巧
2015/01/08 Javascript
JavaScript定时显示广告代码分享
2015/03/02 Javascript
jQuery实现页面滚动时智能浮动定位
2017/01/08 Javascript
vue iview组件表格 render函数的使用方法详解
2018/03/15 Javascript
VeeValidate在vue项目里表单校验应用案例
2018/05/09 Javascript
javascript深拷贝、浅拷贝和循环引用深入理解
2018/05/27 Javascript
angularJs中$http获取后台数据的实例讲解
2018/08/08 Javascript
vue实现todolist基本功能以及数据存储功能实例详解
2019/04/11 Javascript
python使用xauth方式登录饭否网然后发消息
2014/04/11 Python
Python中__call__用法实例
2014/08/29 Python
Python编程中的文件读写及相关的文件对象方法讲解
2016/01/19 Python
探究python中open函数的使用
2016/03/01 Python
Python 3.x读写csv文件中数字的方法示例
2017/08/29 Python
python利用正则表达式搜索单词示例代码
2017/09/24 Python
python 环境搭建 及python-3.4.4的下载和安装过程
2019/07/20 Python
Python搭建代理IP池实现检测IP的方法
2019/10/27 Python
Anaconda配置pytorch-gpu虚拟环境的图文教程
2020/04/16 Python
如何解决flask修改静态资源后缓存文件不能及时更改问题
2020/08/02 Python
在线购买廉价折扣书籍和小说:BookOutlet.com
2018/02/19 全球购物
卡骆驰英国官网:Crocs英国
2019/08/22 全球购物
升职自荐书范文
2013/11/28 职场文书
销售副总经理岗位职责
2013/12/11 职场文书
优秀中学生事迹材料
2014/01/31 职场文书
七年级历史教学反思
2014/02/05 职场文书
演讲主持词
2014/03/18 职场文书
教师岗位职责范本
2015/04/02 职场文书
Python中三种花式打印的示例详解
2022/03/19 Python
Alexa停服!网站排名将何去何从?目前还没有替代品。
2022/04/15 杂记