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 相关文章推荐
键盘 keycode的值 javascript时触发事件时很有用的要素
Nov 02 Javascript
Javascript对象中关于setTimeout和setInterval的this介绍
Jul 21 Javascript
jquery选择器排除某个DOM元素的方法(实例演示)
Apr 25 Javascript
全面解析Bootstrap表单使用方法(表单控件状态)
Nov 24 Javascript
JavaScript实现点击按钮就复制当前网址
Dec 14 Javascript
jQuery 弹出层插件(推荐)
May 24 Javascript
AngularJS 入门教程之事件处理器详解
Aug 19 Javascript
jQuery实现贪吃蛇小游戏(附源码下载)
Mar 04 Javascript
浅谈angular4实际项目搭建总结
Dec 01 Javascript
vue项目中使用vue-i18n报错的解决方法
Jan 13 Javascript
基于JS实现计算24点算法代码实例解析
Jul 23 Javascript
Vue中的nextTick作用和几个简单的使用场景
Jan 25 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 UTF8编码内的繁简转换类
2009/07/20 PHP
PHP中如何定义和使用常量
2013/02/28 PHP
Laravel模板引擎Blade中section的一些标签的区别介绍
2015/02/10 PHP
详谈PHP程序Laravel 5框架的优化技巧
2016/07/18 PHP
学习YUI.Ext 第七天--关于View&amp;JSONView
2007/03/10 Javascript
javascript学习笔记(十六) 系统对话框(alert、confirm、prompt)
2012/06/20 Javascript
javascript中Date format(js日期格式化)方法小结
2015/12/17 Javascript
JS常见问题之为什么点击弹出的i总是最后一个
2016/01/05 Javascript
jQuery实现鼠标经过时高亮,同时其他同级元素变暗的效果
2016/09/18 Javascript
JS+Canvas实现的俄罗斯方块游戏完整实例
2016/12/12 Javascript
jQuery实现的动态文字变化输出效果示例【附演示与demo源码下载】
2017/03/24 jQuery
js字符限制(字符截取) 一个中文汉字算两个字符
2017/09/12 Javascript
js+html获取系统当前时间
2017/11/10 Javascript
基于jquery实现九宫格拼图小游戏
2018/11/30 jQuery
layui的表单提交以及验证和修改弹框的实例
2019/09/09 Javascript
搭建vscode+vue环境的详细教程
2020/08/31 Javascript
在Python中使用NLTK库实现对词干的提取的教程
2015/04/08 Python
复习Python中的字符串知识点
2015/04/14 Python
Python的time模块中的常用方法整理
2015/06/18 Python
一条命令解决mac版本python IDLE不能输入中文问题
2018/05/15 Python
解决Python一行输出不显示的问题
2018/12/03 Python
python支持多线程的爬虫实例
2019/12/21 Python
python自动点赞功能的实现思路
2020/02/26 Python
Selenium基于PIL实现拼接滚动截图
2020/04/10 Python
Python通过类的组合模拟街道红绿灯
2020/09/16 Python
Django实现随机图形验证码的示例
2020/10/15 Python
Russell Stover巧克力官方网站:美国领先的精美巧克力制造商
2016/11/27 全球购物
什么是servlet链?
2014/07/13 面试题
学生会副主席竞聘书
2014/03/31 职场文书
项目工作说明书
2014/07/29 职场文书
班子查摆四风个人对照检查材料思想汇报
2014/10/04 职场文书
2015年医德考评自我评价
2015/03/03 职场文书
升学宴家长答谢词
2015/09/29 职场文书
使用Pytorch训练two-head网络的操作
2021/05/28 Python
weblogic服务建立数据源连接测试更新mysql驱动包的问题及解决方法
2022/01/22 MySQL
浅谈Redis的事件驱动模型
2022/05/30 Redis