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获取url参数的使用扩展实例
Dec 29 Javascript
javascript 密码强弱度检测万能插件
Feb 25 Javascript
使弱类型的语言JavaScript变强势
Jun 22 Javascript
JS 中document.URL 和 windows.location.href 的区别
Nov 11 Javascript
基于jquery的模态div层弹出效果
Aug 21 Javascript
使用jquery mobile做幻灯播放效果实现步骤
Jan 04 Javascript
js创建元素(节点)示例
Jan 02 Javascript
js与C#进行时间戳转换
Nov 14 Javascript
分步解析JavaScript实现tab选项卡自动切换功能
Jan 25 Javascript
Textarea输入字数限制实例(兼容iOS&amp;安卓)
Jul 06 Javascript
vue数字类型过滤器的示例代码
Sep 07 Javascript
vue+animation实现翻页动画
Jun 29 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
PHP中路径问题的解决方案
2006/10/09 PHP
一棵php的类树(支持无限分类)
2006/10/09 PHP
PHP中空字符串介绍0、null、empty和false之间的关系
2012/09/25 PHP
PHP递归调用数组值并用其执行指定函数的方法
2015/04/01 PHP
Zend Framework入门知识点小结
2016/03/19 PHP
Prototype 学习 Prototype对象
2009/07/12 Javascript
javascript是怎么继承的介绍
2012/01/05 Javascript
jquery 元素控制(追加元素/追加内容)介绍及应用
2013/04/21 Javascript
js截取固定长度的中英文字符的简单实例
2013/11/22 Javascript
利用javascript实现全部删或清空所选的操作
2014/05/27 Javascript
js和jquery中循环的退出和继续下一个循环
2014/09/03 Javascript
JavaScript基础函数整理汇总
2015/01/30 Javascript
Backbone.js的Hello World程序实例
2015/06/19 Javascript
jquery验证邮箱格式并显示提交按钮
2015/11/07 Javascript
jQuery拖动元素并对元素进行重新排序
2015/12/30 Javascript
WebGL利用FBO完成立方体贴图效果完整实例(附demo源码下载)
2016/01/26 Javascript
不用一句js代码初始化组件
2016/01/27 Javascript
在JavaScript中对HTML进行反转义详解
2016/05/18 Javascript
浅析如何利用angular结合translate为项目实现国际化
2016/12/08 Javascript
javascript显示系统当前时间代码
2016/12/29 Javascript
nodejs+express实现文件上传下载管理网站
2017/03/15 NodeJs
详解刷新页面vuex数据不消失和不跳转页面的解决
2018/01/30 Javascript
详解vue表单——小白速看
2018/04/08 Javascript
简单明了区分escape、encodeURI和encodeURIComponent
2018/05/26 Javascript
微信小程序tabBar设置实例解析
2019/11/14 Javascript
微信小程序动态评分展示/五角星展示/半颗星展示/自定义长度展示功能的实现
2020/07/22 Javascript
[06:35]2014DOTA2国际邀请赛 老男孩梦圆西雅图中国军团世界最强
2014/07/22 DOTA
Python线程中对join方法的运用的教程
2015/04/09 Python
Python获取央视节目单的实现代码
2015/07/25 Python
Django压缩静态文件的实现方法详析
2018/08/26 Python
Python3 pip3 list 出现 DEPRECATION 警告的解决方法
2019/02/16 Python
在Keras中利用np.random.shuffle()打乱数据集实例
2020/06/15 Python
AVON雅芳官网:世界上最大的美容化妆品公司之一
2016/11/02 全球购物
运行时异常与一般异常有何异同?
2014/01/05 面试题
自主招生自荐信指南
2014/02/04 职场文书
2019升学宴主持词范本5篇
2019/10/09 职场文书