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 词法作用域和闭包分析说明
Aug 12 Javascript
jQuery Ajax请求状态管理器打包
May 03 Javascript
JS检测输入字符是否包含非法字符的示例代码
Feb 11 Javascript
Javascript中对象继承的实现小例
May 12 Javascript
使用window.prompt()实现弹出用户输入的对话框
Apr 13 Javascript
逐一介绍Jquery data()、Jquery stop()、jquery delay()函数(详)
Nov 04 Javascript
JS实现iframe自适应高度的方法示例
Jan 07 Javascript
javascript 数据存储的常用函数总结
Jun 01 Javascript
浅谈vue+webpack项目调试方法步骤
Sep 11 Javascript
浅析从vue源码看观察者模式
Jan 29 Javascript
JS 数组随机洗牌的实例代码
Sep 12 Javascript
在Vue项目中用fullcalendar制作日程表的示例代码
Aug 04 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
与空气斗智斗勇的经典《Overlord》,传说中的“无稽之谈”
2020/04/09 日漫
PHP 遍历XP文件夹下所有文件
2008/11/27 PHP
php 取得瑞年与平年的天数的代码
2009/08/10 PHP
php中常用的预定义变量小结
2012/05/09 PHP
php 邮件发送问题解决
2014/03/22 PHP
thinkphp实现like模糊查询实例
2014/10/29 PHP
thinkphp循环结构用法实例
2014/11/24 PHP
PHP+MYSQL实现用户的增删改查
2015/03/24 PHP
php生成毫秒时间戳的实例讲解
2017/09/22 PHP
PHP性能分析工具xhprof的安装使用与注意事项
2017/12/19 PHP
ThinkPHP3.2.3框架实现的空模块、空控制器、空操作,跳转到错误404页面图文详解
2019/04/03 PHP
JavaScipt中的Math.ceil() 、Math.floor() 、Math.round() 三个函数的理解
2010/04/29 Javascript
javascript 得到变量类型的函数
2010/05/19 Javascript
node.js开发中使用Node Supervisor实现监测文件修改并自动重启应用
2014/11/04 Javascript
JS动态修改iframe内嵌网页地址的方法
2015/04/01 Javascript
JavaScript模板引擎用法实例
2015/07/10 Javascript
javascript jquery对form元素的常见操作详解
2016/06/12 Javascript
详解基于javascript实现的苹果系统底部菜单
2016/12/02 Javascript
vue translate peoject实现在线翻译功能【新手必看】
2018/06/07 Javascript
5分钟学会Vue动画效果(小结)
2018/07/21 Javascript
微信小程序 wx:for遍历循环使用实例解析
2019/09/09 Javascript
JS数组降维的实现Array.prototype.concat.apply([], arr)
2020/04/28 Javascript
js实现贪吃蛇游戏(简易版)
2020/09/29 Javascript
[51:20]完美世界DOTA2联赛PWL S2 Magma vs PXG 第一场 11.28
2020/12/01 DOTA
用Python给文本创立向量空间模型的教程
2015/04/23 Python
微信跳一跳游戏python脚本
2020/04/01 Python
Python实现word2Vec model过程解析
2019/12/16 Python
python3 动态模块导入与全局变量使用实例
2019/12/22 Python
Softmax函数原理及Python实现过程解析
2020/05/22 Python
Python3爬虫中pyspider的安装步骤
2020/07/29 Python
Python如何telnet到网络设备
2021/02/18 Python
澳大利亚Rockwear官网:女子瑜伽、健身和运动服
2021/01/26 全球购物
节约用水倡议书
2014/04/16 职场文书
教师国庆节演讲稿范文2014
2014/09/21 职场文书
教师党员学习群众路线心得体会
2014/11/04 职场文书
Mysql中where与on的区别及何时使用详析
2021/08/04 MySQL