JS对日期、时间校验;兼容IE new Date()

1. IE浏览器new Date();的坑

var thisDate=new Date("yyyy-MM-dd HH:mm:ss");//此方式IE不支持
var thisDate=new Date("yyyy/MM/dd HH:mm:ss");//此语法支持IE
复制代码

2. 比较两个日期的大小。例:2019-3-19

	//比较两个日期大小
	function dateCompare(startDate,endDate){
	   var aStart=startDate.split('-'); //转成成数组,分别为年,月,日,下同
	   var aEnd=endDate.split('-');
	   var startDateTemp = aStart[0]+"/" + aStart[1]+ "/" + aStart[2];
	   var endDateTemp = aEnd[0] + "/" + aEnd[1] + "/" + aEnd[2];
	   if (startDateTemp > endDateTemp) 
	    return true;
	   else
	    return false;
	}
复制代码

3. 计算两个日期之间的天数

	function dateDiff(date1, date2){     
		var type1 = typeof date1, type2 = typeof date2;     
		if(type1 == 'string')     
			date1 = stringToTime(date1);     
		else if(date1.getTime)     
			date1 = date1.getTime();     
		if(type2 == 'string')     
			date2 = stringToTime(date2);     
		else if(date2.getTime)     
			date2 = date2.getTime(); 
		return (date2 - date1) / 1000 / 60 / 60 / 24;//除1000是毫秒,不加是秒 
	} 
	//字符串转成Time(dateDiff)所需方法 
	function stringToTime(string){     
		var f = string.split(' ', 2);     
		var d = (f[0] ? f[0] : '').split('-', 3);     
		var t = (f[1] ? f[1] : '').split(':', 3);     
		return (new Date(     
		parseInt(d[0], 10) || null,     
		(parseInt(d[1], 10) || 1)-1,     
		parseInt(d[2], 10) || null,     
		parseInt(t[0], 10) || null,    
		parseInt(t[1], 10) || null,     
		parseInt(t[2], 10) || null)).getTime(); 
	}
复制代码

4. 显示当前系统日期(跑起来的时间)

function showtime() {
	// 获取当前时间对象
	var day = new Date();
	var yeas = day.getFullYear();// 获取年份
	var month = day.getMonth();// 获取月份,值在0--11之间
	var days = day.getDate();// 获取每个月的第几天
	var hours = day.getHours();// 获取当前的小时
	var minutes = day.getMinutes();// 获取当前的分钟
	var seconds = day.getSeconds();// 获取当前的时间秒
	var week = day.getDay();// 获取当前的星期值在0--6之间
	// alert(week);
	var weeks = null;
	if (week == 1) {
		weeks = "星期一";
	} else if (week == 2) {
		weeks = "星期二";
	} else if (week == 3) {
		weeks = "星期三";
	} else if (week == 4) {
		weeks = "星期四";
	} else if (week == 5) {
		weeks = "星期五";
	} else if (week == 6) {
		weeks = "星期六";
	} else if (week == 0) {// 0代表的是星期天
		weeks = "星期天";
	}
	// 将日期显示在前台
	$("#clock").text(yeas + "年" + (month + 1) + "月" + days + "日" + hours + ":" + minutes+ ":" + seconds + "\t\t\t" + weeks);
}
复制代码
$(function() {
	showtime();
	// 调用时间函数,每一秒钟调用一次
	setInterval("showtime()", 1000);
});
复制代码

5:格式化当前系统时间

Date.prototype.format = function(format){ 
	var o = { 
    	"M+" : this.getMonth()+1, //month 
    	"d+" : this.getDate(), //day 
    	"h+" : this.getHours(), //hour 
    	"m+" : this.getMinutes(), //minute 
    	"s+" : this.getSeconds(), //second 
    	"q+" : Math.floor((this.getMonth()+3)/3), //quarter 
    	"S" : this.getMilliseconds() //millisecond 
	} 
	if(/(y+)/.test(format)) { 
	    format.replace(RegExp.$1, (this.getFullYear()+"").substr(4 - RegExp.$1.length)); 
	} 
	for(var k in o) { 
    	if(new RegExp("("+ k +")").test(format)) { 
    	    format = format.replace(RegExp.$1, RegExp.$1.length==1 ? o[k] : ("00"+ o[k]).substr((""+ o[k]).length)); 
    	} 
    } 
    return format; 
} 

//返回当前年月日格式为:2016-04-08而不是2016-4-8
new Date().format.("yyyy-MM-dd");
复制代码

6. 计算两个日期相差分钟数

    // 两个日期之间的分钟数
    function calcDateMinute(startDate,endDate){
        var newDate = new Date(endDate).getTime() - new Date(startDate).getTime();
        return Math.ceil(newDate / 1000 / 60);
    }
复制代码

转载于:https://juejin.im/post/5c90bbdd6fb9a070d14c270c

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值