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 相关文章推荐
通过百度地图获取公交线路的站点坐标的js代码
May 11 Javascript
js QQ客服悬浮效果实现代码
Dec 12 Javascript
jQuery中DOM树操作之使用反向插入方法实例分析
Jan 23 Javascript
详解JavaScript模块化开发
Dec 04 Javascript
Bootstrap table两种分页示例
Dec 23 Javascript
Bootstrap输入框组件简单实现代码
Mar 06 Javascript
JS实现移动端实时监听输入框变化的实例代码
Apr 12 Javascript
JavaScript编程设计模式之构造器模式实例分析
Oct 25 Javascript
Windows安装Node.js报错:2503、2502的解决方法
Oct 25 Javascript
利用vue-i18n实现多语言切换效果的方法
Jun 19 Javascript
微信小程序indexOf的替换方法(推荐)
Jan 14 Javascript
three.js着色器材质的内置变量示例详解
Aug 16 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 ADODB使用方法集锦
2008/03/25 PHP
php adodb连接不同数据库
2009/03/19 PHP
php的hash算法介绍
2014/02/13 PHP
通过继承IHttpHandle实现JS插件的组织与管理
2010/07/13 Javascript
jQuery简单实现验证邮箱格式
2015/07/15 Javascript
JS提示:Uncaught SyntaxError:Unexpected token ) 错误的解决方法
2016/08/19 Javascript
node.js中debug模块的简单介绍与使用
2017/04/25 Javascript
jQuery Ajax自定义分页组件(jquery.loehpagerv1.0)实例详解
2017/05/01 jQuery
前端构建工具之gulp的配置与搭建详解
2017/06/12 Javascript
BootStrap Validator 根据条件在JS中添加或移除校验操作
2017/10/12 Javascript
微信小程序按钮点击跳转页面详解
2019/05/06 Javascript
[00:32]2018DOTA2亚洲邀请赛iG出场
2018/04/03 DOTA
详解Python的Django框架中的Cookie相关处理
2015/07/22 Python
利用Python命令行传递实例化对象的方法
2016/11/02 Python
解决python3 urllib中urlopen报错的问题
2017/03/25 Python
python3中os.path模块下常用的用法总结【推荐】
2018/09/16 Python
对python中的float除法和整除法的实例详解
2019/07/20 Python
python实现kNN算法识别手写体数字的示例代码
2019/08/16 Python
对Django中的权限和分组管理实例讲解
2019/08/16 Python
Python MongoDB 插入数据时已存在则不执行,不存在则插入的解决方法
2019/09/24 Python
原来我一直安装 Python 库的姿势都不对呀
2019/11/11 Python
tensorflow中tf.slice和tf.gather切片函数的使用
2020/01/19 Python
解决Tensorboard 不显示计算图graph的问题
2020/02/15 Python
python 给图像添加透明度(alpha通道)
2020/04/09 Python
世界领先的以旅馆为主的在线预订平台:Hostelworld
2016/10/09 全球购物
世界上最具创新性的增强型知名运动品牌:Proviz
2018/04/03 全球购物
植树节活动总结
2014/04/30 职场文书
学雷锋演讲稿汇总
2014/05/10 职场文书
服务标语口号
2014/07/01 职场文书
十佳家长事迹材料
2014/08/26 职场文书
2015年七一建党节演讲稿
2015/03/19 职场文书
孙振耀退休感言
2015/08/01 职场文书
初二数学教学反思
2016/02/17 职场文书
Idea连接MySQL数据库出现中文乱码的问题
2021/04/14 MySQL
Python自动化测试PO模型封装过程详解
2021/06/22 Python
MySQL创建管理LIST分区
2022/04/13 MySQL