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类中获取外部函数名的方法
Aug 19 Javascript
用户注册常用javascript代码
Aug 29 Javascript
关于火狐(firefox)及ie下event获取的两种方法
Dec 27 Javascript
JavaScript作用域链示例分享
May 27 Javascript
javascript实现表单验证
Jan 29 Javascript
jQuery取消特定的click事件
Feb 29 Javascript
vue-router重定向不刷新问题的解决
Jun 25 Javascript
微信小程序实现日历效果
Dec 28 Javascript
Vue开发Html5微信公众号的步骤
Apr 11 Javascript
vue两组件间值传递 $router.push实现方法
May 15 Javascript
Javascript原型链及instanceof原理详解
May 25 Javascript
nuxt 每个页面head标签内容设置方式
Nov 05 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 正则学习实例
2008/07/30 PHP
保存到桌面、设为桌面且带图标的PHP代码
2013/11/19 PHP
YII2框架中查询生成器Query()的使用方法示例
2020/03/18 PHP
禁止iframe页面的所有js脚本如alert及弹出窗口等
2014/09/03 Javascript
javascript实现依次输入input自动定焦
2014/12/23 Javascript
JS实现兼容各浏览器解析XML文档数据的方法
2015/06/01 Javascript
Javascript函数式编程简单介绍
2015/10/11 Javascript
JavaScript制作简单的日历效果
2016/03/10 Javascript
去除字符串左右两边的空格(实现代码)
2016/05/12 Javascript
Ionic如何实现下拉刷新与上拉加载功能
2016/06/03 Javascript
JavaScript Ajax编程 应用篇
2016/07/02 Javascript
基于BootStrap multiselect.js实现的下拉框联动效果
2017/07/28 Javascript
webpack配置之后端渲染详解
2017/10/26 Javascript
帝国cms首页列表页实现点赞功能
2017/10/30 Javascript
JS原型和原型链原理与用法实例详解
2020/02/05 Javascript
Python3读取zip文件信息的方法
2015/05/22 Python
Python Socket传输文件示例
2017/01/16 Python
python matplotlib中文显示参数设置解析
2017/12/15 Python
PyCharm+Qt Designer+PyUIC安装配置教程详解
2019/06/13 Python
python机器学习库scikit-learn:SVR的基本应用
2019/06/26 Python
scrapy-splash简单使用详解
2021/02/21 Python
canvas 橡皮筋式线条绘图应用方法
2019/02/13 HTML / CSS
Brookstone美国官网:独特新奇产品
2017/03/04 全球购物
巴西最大的玩具连锁店:Ri Happy
2020/06/17 全球购物
Java面试题及答案
2012/09/08 面试题
机电专业大学生求职信
2013/10/04 职场文书
医学院学生的自我评价分享
2013/11/19 职场文书
英文求职信范文
2014/05/23 职场文书
董事长助理工作职责
2014/06/08 职场文书
安全伴我行演讲稿
2014/09/04 职场文书
出纳岗位职责范本
2015/03/31 职场文书
廉洁自律准则学习心得体会
2016/01/13 职场文书
校园文化艺术节开幕词
2016/03/04 职场文书
浅谈Python协程asyncio
2021/06/20 Python
Mysql外键约束的创建与删除的使用
2022/03/03 MySQL
德劲DE1105机评
2022/04/05 无线电