JavaScript自定义DateDiff函数(兼容所有浏览器)


Posted in Javascript onMarch 01, 2012
<script type="text/javascript"> 
function NewDate(str) { 
str = str.split('-'); 
var date = new Date(); 
date.setUTCFullYear(str[0], str[1] - 1, str[2]); 
date.setUTCHours(0, 0, 0, 0); 
return date; 
} 
function TimeCom(dateValue) { 
var newCom; if (dateValue == "") { 
newCom = new Date(); 
} else { 
newCom = NewDate(dateValue); 
} 
this.year = newCom.getYear(); 
this.month = newCom.getMonth() + 1; 
this.day = newCom.getDate(); 
this.hour = newCom.getHours(); 
this.minute = newCom.getMinutes(); 
this.second = newCom.getSeconds(); 
this.msecond = newCom.getMilliseconds(); 
this.week = newCom.getDay(); 
} 
function DateDiff(interval, date1, date2) { 
var TimeCom1 = new TimeCom(date1); 
var TimeCom2 = new TimeCom(date2); 
var result; 
switch (String(interval).toLowerCase()) { 
case "y": 
case "year": 
result = TimeCom1.year - TimeCom2.year; 
break; 
case "m": 
case "month": 
result = (TimeCom1.year - TimeCom2.year) * 12 + (TimeCom1.month - TimeCom2.month); 
break; 
case "d": 
case "day": 
result = Math.round((Date.UTC(TimeCom1.year, TimeCom1.month - 1, TimeCom1.day) - Date.UTC(TimeCom2.year, TimeCom2.month - 1, TimeCom2.day)) / (1000 * 60 * 60 * 24)); 
break; 
case "h": 
case "hour": 
result = Math.round((Date.UTC(TimeCom1.year, TimeCom1.month - 1, TimeCom1.day, TimeCom1.hour) - Date.UTC(TimeCom2.year, TimeCom2.month - 1, TimeCom2.day, TimeCom2.hour)) / (1000 * 60 * 60)); 
break; 
case "min": 
case "minute": 
result = Math.round((Date.UTC(TimeCom1.year, TimeCom1.month - 1, TimeCom1.day, TimeCom1.hour, TimeCom1.minute) - Date.UTC(TimeCom2.year, TimeCom2.month - 1, TimeCom2.day, TimeCom2.hour, TimeCom2.minute)) / (1000 * 60)); 
break; 
case "s": 
case "second": 
result = Math.round((Date.UTC(TimeCom1.year, TimeCom1.month - 1, TimeCom1.day, TimeCom1.hour, TimeCom1.minute, TimeCom1.second) - Date.UTC(TimeCom2.year, TimeCom2.month - 1, TimeCom2.day, TimeCom2.hour, TimeCom2.minute, TimeCom2.second)) / 1000); 
break; 
case "ms": 
case "msecond": 
result = Date.UTC(TimeCom1.year, TimeCom1.month - 1, TimeCom1.day, TimeCom1.hour, TimeCom1.minute, TimeCom1.second, TimeCom1.msecond) - Date.UTC(TimeCom2.year, TimeCom2.month - 1, TimeCom2.day, TimeCom2.hour, TimeCom2.minute, TimeCom2.second, TimeCom1.msecond); 
break; 
case "w": 
case "week": 
result = Math.round((Date.UTC(TimeCom1.year, TimeCom1.month - 1, TimeCom1.day) - Date.UTC(TimeCom2.year, TimeCom2.month - 1, TimeCom2.day)) / (1000 * 60 * 60 * 24)) % 7; 
break; 
default: 
result = "invalid"; 
} 
return (result); 
} 
</script>
Javascript 相关文章推荐
原生js获取宽高与jquery获取宽高的方法关系对比
Apr 04 Javascript
JS实现一个列表中包含上移下移删除等功能
Sep 24 Javascript
js实现使用鼠标拖拽切换图片的方法
May 04 Javascript
函数window.open实现关闭所有的子窗口
Aug 03 Javascript
全面理解JavaScript中的继承(必看)
Jun 16 Javascript
jQuery mobile的header和footer在点击屏幕的时候消失的解决办法
Jul 01 Javascript
微信小程序  TLS 版本必须大于等于1.2问题解决
Feb 22 Javascript
jQuery实现导航栏头部菜单项点击后变换颜色的方法
Jul 19 jQuery
vue实现form表单与table表格的数据关联功能示例
Jan 29 Javascript
vue项目中使用vue-layer弹框插件的方法
Mar 11 Javascript
基于 Vue 的 Electron 项目搭建过程图文详解
Jul 22 Javascript
vue-router定义元信息meta操作
Dec 07 Vue.js
JavaScript版DateAdd和DateDiff函数代码
Mar 01 #Javascript
js编码之encodeURIComponent使用介绍(asp,php)
Mar 01 #Javascript
js FLASH幻灯片字符串中有连接符&的处理方法
Mar 01 #Javascript
JavaScript高级程序设计 读书笔记之十 本地对象Date日期
Feb 27 #Javascript
JavaScript高级程序设计 读书笔记之九 本地对象Array
Feb 27 #Javascript
JavaScript高级程序设计 读书笔记之八 Function类及闭包
Feb 27 #Javascript
JavaScript高级程序设计 阅读笔记(七) ECMAScript中的语句
Feb 27 #Javascript
You might like
php+mysql事务rollback&amp;commit示例
2010/02/08 PHP
基于PHP创建Cookie数组的详解
2013/07/03 PHP
php中多维数组按指定value排序的实现代码
2014/08/19 PHP
百度实时推送api接口应用示例
2014/10/21 PHP
php投票系统之增加与删除投票(管理员篇)
2016/07/01 PHP
基于php流程控制语句和循环控制语句(讲解)
2017/10/23 PHP
在 Laravel 中动态隐藏 API 字段的方法
2019/10/25 PHP
有道JavaScript监听浏览器的问题
2010/06/23 Javascript
javascript实现颜色渐变的方法
2013/10/30 Javascript
浅析Node.js查找字符串功能
2014/09/03 Javascript
c#+jquery实现获取radio和checkbox的值
2020/09/12 Javascript
jQuery实现按钮点击遮罩加载及处理完后恢复的效果
2016/06/07 Javascript
jQuery中on方法使用注意事项详解
2017/02/15 Javascript
Vue.js实战之通过监听滚动事件实现动态锚点
2017/04/04 Javascript
js实现放大镜特效
2017/05/18 Javascript
详解使用Node.js 将txt文件转为Excel文件
2017/07/05 Javascript
vue生命周期与钩子函数简单示例
2019/03/13 Javascript
微信小程序动态添加view组件的实例代码
2019/05/23 Javascript
el-input 标签中密码的显示和隐藏功能的实例代码
2019/07/19 Javascript
vue实现登录功能
2020/12/31 Vue.js
python3设计模式之简单工厂模式
2017/10/17 Python
Python异常处理操作实例详解
2018/05/10 Python
Python3用tkinter和PIL实现看图工具
2018/06/21 Python
python3 实现爬取TOP500的音乐信息并存储到mongoDB数据库中
2019/08/24 Python
python orm 框架中sqlalchemy用法实例详解
2020/02/02 Python
Python qrcode 生成一个二维码的实例详解
2020/02/12 Python
Python numpy多维数组实现原理详解
2020/03/10 Python
python读取图片颜色值并生成excel像素画的方法实例
2021/02/19 Python
中国最大的潮流商品购物网站:YOHO!BUY有货
2017/01/07 全球购物
Perfume’s Club意大利官网:欧洲美妆电商
2019/05/03 全球购物
《再别康桥》教学反思
2014/02/12 职场文书
幼儿园教师获奖感言
2014/03/11 职场文书
规划编制实施方案
2014/03/15 职场文书
读书之星事迹材料
2014/05/12 职场文书
节约粮食标语
2014/06/18 职场文书
群众路线自查报告及整改措施
2014/11/04 职场文书