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 相关文章推荐
javascript 进度条 实现代码
Jul 30 Javascript
Jquery ajax不能解析json对象,报Invalid JSON错误的原因和解决方法
Mar 27 Javascript
javascript,jquery闭包概念分析
Jun 19 Javascript
一个简单的js渐显(fadeIn)渐隐(fadeOut)类
Jun 19 Javascript
js确定对象类型方法
Mar 30 Javascript
javascript中的delete使用详解
Apr 11 Javascript
javascript数组去重小结
Mar 07 Javascript
JQuery EasyUI学习教程之datagrid 添加、修改、删除操作
Jul 09 Javascript
jQuery表单设置值的方法
Jun 30 jQuery
在vue中使用Echarts画曲线图的示例
Oct 03 Javascript
微信小程序调用后台service教程详解
Nov 06 Javascript
一篇文章学会Vue中间件管道
Jun 20 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中的Class的几点个人看法
2006/10/09 PHP
PHP 和 MySQL 基础教程(一)
2006/10/09 PHP
收集的php编写大型网站问题集
2007/03/06 PHP
简单的移动设备检测PHP脚本代码
2011/02/19 PHP
php实现的ping端口函数实例
2014/11/12 PHP
调用WordPress函数统计文章访问量及PHP原生计数器的实现
2016/03/21 PHP
php 多文件上传的实现实例
2016/10/23 PHP
jquery异步循环获取功能实现代码
2010/09/19 Javascript
jQuery语法总结和注意事项小结
2012/11/11 Javascript
JavaScript prototype 使用介绍
2013/08/29 Javascript
无刷新预览所选择的图片示例代码
2014/04/02 Javascript
轻松创建nodejs服务器(1):一个简单nodejs服务器例子
2014/12/18 NodeJs
详解AngularJS中的表格使用
2015/06/16 Javascript
js实现表单检测及表单提示的方法
2015/08/14 Javascript
Html5 js实现手风琴效果
2020/04/17 Javascript
微信小程序 POST请求的实例详解
2017/09/29 Javascript
一个简单的node.js界面实现方法
2018/06/01 Javascript
JavaScript数值类型知识汇总
2019/11/17 Javascript
koa2 数据api中间件设计模型的实现方法
2020/07/13 Javascript
JavaScript实现刮刮乐效果
2020/11/01 Javascript
js基于canvas实现时钟组件
2021/02/07 Javascript
[51:36]Optic vs Newbee 2018国际邀请赛小组赛BO2 第一场 8.17
2018/08/18 DOTA
[54:58]完美世界DOTA2联赛PWL S2 LBZS vs Rebirth 第一场 11.25
2020/11/25 DOTA
用smtplib和email封装python发送邮件模块类分享
2014/02/17 Python
Python + selenium + crontab实现每日定时自动打卡功能
2020/03/31 Python
Python中logging日志记录到文件及自动分割的操作代码
2020/08/05 Python
python向xls写入数据(包括合并,边框,对齐,列宽)
2021/02/02 Python
CSS3实现跳动的动画效果
2016/09/12 HTML / CSS
网易微博Web App用HTML5开发的过程介绍
2012/06/13 HTML / CSS
基于html5实现的图片墙效果
2014/10/16 HTML / CSS
在weblogic中发布ejb需涉及到哪些配置文件
2012/01/17 面试题
广播体操口号
2014/06/18 职场文书
财产分割协议书
2016/03/22 职场文书
JS中一些高效的魔法运算符总结
2021/05/06 Javascript
Redis主从配置和底层实现原理解析(实战记录)
2021/06/30 Redis
Redis实现订单过期删除的方法步骤
2022/06/05 Redis