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之$(document).ready()使用介绍
Apr 05 Javascript
JS跨域代码片段
Aug 30 Javascript
浅谈JavaScript Array对象
Dec 29 Javascript
实例解析JS布尔对象的toString()方法和valueOf()方法
Oct 25 Javascript
javascript拖拽效果延伸学习
Apr 04 Javascript
AngularJS入门教程之AngularJS 模板
Aug 18 Javascript
bootstrapValidator.min.js表单验证插件
Feb 09 Javascript
input框中自动展示当前日期yyyy/mm/dd的实现方法
Jul 06 Javascript
关于在mongoose中填充外键的方法详解
Aug 14 Javascript
JavaScript基础之静态方法和实例方法分析
Dec 26 Javascript
vue-router beforeEach跳转路由验证用户登录状态
Dec 26 Javascript
vue导航栏部分的动态渲染实例
Nov 01 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
咖啡与牛奶
2021/03/03 冲泡冲煮
php 数学运算验证码实现代码
2009/10/11 PHP
php 升级到 5.3+ 后出现的一些错误,如 ereg(); ereg_replace(); 函数报错
2015/12/07 PHP
JavaScript 封装Ajax传递的数据代码
2009/06/05 Javascript
发布一个基于javascript的动画类 Fx.js
2010/11/05 Javascript
新发现一个骗链接的方法(js读取cookies)
2012/01/11 Javascript
基于jquery的可多选的下拉列表框
2012/07/20 Javascript
IE下使用cloneNode注意事项分享
2012/11/22 Javascript
hover的用法及live的用法介绍(鼠标悬停效果)
2013/03/29 Javascript
页面载入结束自动调用js函数示例
2013/09/23 Javascript
解析jQuery的三种bind/One/Live事件绑定使用方法
2013/12/30 Javascript
jquery序列化表单以及回调函数的使用示例
2014/07/02 Javascript
修改或扩展jQuery原生方法的代码实例
2015/01/13 Javascript
JavaScript DOM事件(笔记)
2015/04/08 Javascript
jQuery实现textarea自动增长宽高的方法
2015/12/18 Javascript
微信小程序 删除项目工程实现步骤
2016/11/10 Javascript
[22:20]初生之犊-TI4第5名LGD战队纪录片
2014/08/13 DOTA
Python基类函数的重载与调用实例分析
2015/01/12 Python
python3实现抓取网页资源的 N 种方法
2017/05/02 Python
Flask和Django框架中自定义模型类的表名、父类相关问题分析
2018/07/19 Python
python中reader的next用法
2018/07/24 Python
python正则表达式匹配[]中间为任意字符的实例
2018/12/25 Python
Python数据可视化之画图
2019/01/15 Python
使用Django简单编写一个XSS平台的方法步骤
2019/03/25 Python
解决Python中回文数和质数的问题
2019/11/24 Python
python文件读取失败怎么处理
2020/06/23 Python
pycharm 如何取消连按两下shift出现的全局搜索
2021/01/15 Python
python-jwt用户认证食用教学的实现方法
2021/01/19 Python
CheapTickets泰国:廉价航班,查看促销价格并预订机票
2019/12/28 全球购物
美国在线购买内衣网站:HerRoom
2020/02/22 全球购物
自我鉴定四大框架
2014/01/17 职场文书
高中毕业生登记表自我鉴定范文
2014/03/18 职场文书
高校自主招生教师推荐信
2015/03/23 职场文书
2016公司年会通知范文
2015/04/25 职场文书
开业庆典致辞
2015/08/01 职场文书
汽车销售员工作总结
2015/08/12 职场文书