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 相关文章推荐
jquery动态添加删除div 具体实现
Jul 20 Javascript
JQuery获取表格数据示例代码
May 26 Javascript
JavaScript操作class和style样式代码详解
Feb 13 Javascript
JavaScript解八皇后问题的方法总结
Jun 12 Javascript
AngularJS实践之使用ng-repeat中$index的注意点
Dec 22 Javascript
AngularJS之页面跳转Route实例代码
Mar 10 Javascript
jQuery复合事件用法示例
Jun 10 jQuery
微信小程序获取微信运动步数的实例代码
Jul 20 Javascript
jQuery Position方法使用和兼容性
Aug 23 jQuery
深入理解Vue Computed计算属性原理
May 29 Javascript
javascript写一个ajax自动拦截并下载数据代码实例
Sep 07 Javascript
vue 实现强制类型转换 数字类型转为字符串
Nov 07 Javascript
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
Smarty+QUICKFORM小小演示
2007/02/25 PHP
PHP使用mysql与mysqli连接Mysql数据库用法示例
2016/07/07 PHP
jquery $(this).attr $(this).val方法使用介绍
2013/10/08 Javascript
JS 屏蔽按键效果与改变按键效果的示例代码
2013/12/24 Javascript
Javascript四舍五入Math.round()与Math.pow()使用介绍
2013/12/27 Javascript
js如何调用qq互联api实现第三方登录
2014/03/28 Javascript
手机号码,密码正则验证
2014/09/04 Javascript
Javascript中的几种URL编码方法比较
2015/01/23 Javascript
6种javascript显示当前系统时间代码
2015/12/01 Javascript
Node.js+Express配置入门教程
2016/05/19 Javascript
jQuery 3.0十大新特性
2016/07/06 Javascript
通过扫描二维码打开app的实现代码
2016/11/10 Javascript
JS实现侧边栏鼠标经过弹出框+缓冲效果
2017/03/29 Javascript
Angularjs 1.3 中的$parse实例代码
2017/09/14 Javascript
微信小程序wepy框架笔记小结
2018/08/08 Javascript
nodejs开发一个最简单的web服务器实例讲解
2020/01/02 NodeJs
python采集百度百科的方法
2015/06/05 Python
python 字符串转列表 list 出现\ufeff的解决方法
2017/06/22 Python
python得到windows自启动列表的方法
2018/10/14 Python
判断python对象是否可调用的三种方式及其区别详解
2019/01/31 Python
python3.6实现学生信息管理系统
2019/02/21 Python
Python切片操作去除字符串首尾的空格
2019/04/22 Python
python实现两个dict合并与计算操作示例
2019/07/01 Python
python Django编写接口并用Jmeter测试的方法
2019/07/31 Python
OpenCV里的imshow()和Matplotlib.pyplot的imshow()的实现
2019/11/25 Python
Python Selenium模块安装使用教程详解
2020/07/09 Python
vscode调试django项目的方法
2020/08/06 Python
Pycharm Git 设置方法
2020/09/15 Python
CSS3 flex布局之快速实现BorderLayout布局
2015/12/03 HTML / CSS
德国受欢迎的旅游和休闲网站:lastminute.de
2019/09/23 全球购物
大专毕业生自我鉴定
2013/11/21 职场文书
护士工作失误检讨书
2014/09/14 职场文书
廉洁自律个人总结
2015/02/14 职场文书
《扇形统计图》教学反思
2016/02/17 职场文书
2019广播稿怎么写
2019/04/17 职场文书
如何使用php生成zip压缩包
2021/04/21 PHP