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 相关文章推荐
基于jquery跨浏览器显示的file上传控件
Oct 24 Javascript
原生js模拟淘宝购物车项目实战
Nov 18 Javascript
javascript实现保留两位小数的多种方法
Dec 18 Javascript
基于vuejs+webpack的日期选择插件
May 21 Javascript
vue.js使用v-if实现显示与隐藏功能示例
Jul 06 Javascript
node链接mongodb数据库的方法详解【阿里云服务器环境ubuntu】
Mar 07 Javascript
Vue3 源码导读(推荐)
Oct 14 Javascript
浅谈layui 绑定form submit提交表单的注意事项
Oct 25 Javascript
微信小程序动态设置图片大小的方法
Nov 21 Javascript
vue实现用户长时间不操作自动退出登录功能的实现代码
Jul 23 Javascript
JS实现购物车基本功能
Nov 08 Javascript
详解实现vue的数据响应式原理
Jan 20 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截取utf-8中文字符串乱码的解决方法
2010/03/29 PHP
php目录操作实例代码
2014/02/21 PHP
php+ajax登录跳转登录实现思路
2016/07/31 PHP
用Javascript读取中文COOKIE的解决办法
2007/02/15 Javascript
js parsefloat parseint 转换函数
2010/01/21 Javascript
js鼠标滑过弹出层的定位IE6bug解决办法
2012/12/26 Javascript
js操作iframe的一些方法介绍
2013/06/25 Javascript
基于jquery的禁用右键、文本选择功能、复制按键的实现代码
2013/08/27 Javascript
jquery事件与函数的使用介绍
2013/09/29 Javascript
前台js调用后台方法示例
2013/12/02 Javascript
再探JavaScript作用域
2014/09/24 Javascript
JS实现的不规则TAB选项卡效果代码
2015/09/18 Javascript
禁用backspace网页回退功能的实现代码
2016/11/15 Javascript
xmlplus组件设计系列之文本框(TextBox)(3)
2017/05/03 Javascript
vue跨域解决方法
2017/10/15 Javascript
vue-cli 首屏加载优化问题
2018/11/06 Javascript
详解为生产环境编译Angular2应用的方法
2018/12/10 Javascript
Angular6 用户自定义标签开发的实现方法
2019/01/08 Javascript
Vue监听页面刷新和关闭功能
2019/06/20 Javascript
vue 内联样式style中的background用法说明
2020/08/05 Javascript
react antd表格中渲染一张或多张图片的实例
2020/10/28 Javascript
使用python实现拉钩网上的FizzBuzzWhizz问题示例
2014/05/05 Python
Python字典操作详细介绍及字典内建方法分享
2018/01/04 Python
numpy实现合并多维矩阵、list的扩展方法
2018/05/08 Python
Python完全识别验证码自动登录实例详解
2019/11/24 Python
使用Python封装excel操作指南
2021/01/29 Python
使用Html5实现异步上传文件,支持跨域,带有上传进度条
2016/09/17 HTML / CSS
Ryderwear澳洲官网:澳大利亚高端健身训练装备品牌
2018/09/18 全球购物
武汉世纪畅想数字传播有限公司.NET笔试题
2014/07/22 面试题
毕业生物理教师求职信
2013/10/17 职场文书
应急处置方案
2014/06/16 职场文书
工作失职检讨书
2015/01/26 职场文书
教师读书活动心得体会
2016/01/14 职场文书
导游词之鲁迅祖居
2019/10/17 职场文书
基于Python的EasyGUI学习实践
2021/05/07 Python
python中对列表的删除和添加方法详解
2022/02/24 Python