刚开始我开始接触时间差的时候,我特别的傻的用,时间和时间相减,琢磨一会,一个非常严重的问题就是跨月跨天咋弄涅。。额。。尴尬了。。这也就是菜鸟才会这样吧,我第一个用到的时间函数,出处已经不知道了,用着还行。
function BetweenTime(a1,a2){
var date1 =new Date(Date.parse(a1.replace(/-/g, "/"))) ; //开始时间
var date2 = new Date(Date.parse(a2.replace(/-/g, "/"))) ; //结束时间
var date3 = date2.getTime() - date1.getTime() //时间差的毫秒数
//计算出相差天数
var days = Math.floor(date3 / (24 * 3600 * 1000))
//计算出小时数
var leave1 = date3 % (24 * 3600 * 1000) //计算天数后剩余的毫秒数
var hours = Math.floor(leave1 / (3600 * 1000))
//计算相差分钟数
var leave2 = leave1 % (3600 * 1000) //计算小时数后剩余的毫秒数
var minutes = Math.floor(leave2 / (60 * 1000))
//计算相差秒数
var leave3 = leave2 % (60 * 1000) //计算分钟数后剩余的毫秒数
var seconds = Math.round(leave3 / 1000)
// alert(" 相差 " + days + "天 " + hours + "小时 " + minutes + " 分钟" + seconds + " 秒")
var timeString=((days==0)?"":(days + "天 ")) + ((hours==0)?"":(hours + "小时 ")) +( (minutes==0)?"":(minutes + " 分钟")) +( (seconds==0)?"":(seconds + " 秒"))
return timeString;
}
函数用法:
var a1="2018-05-22 15:02:45";
var a2="2018-05-24 18:45:44";
console.log(BetweenTime(a1,a2))
// 结果是2天3小时42分钟59秒
那个时候写的还用alert 打断点呢。。。呵呵。。。
下边这个是时间格式化函数
function formatDateTime(date) {
// 时间格式化函数 最后结果是2018-5-23 12:20
var y = date.getFullYear();
var m = date.getMonth() + 1;
m = m < 10 ? ('0' + m) : m;
var d = date.getDate();
d = d < 10 ? ('0' + d) : d;
var h = date.getHours();
h = h < 10 ? ('0' + h) : h;
var minute = date.getMinutes();
minute = minute < 10 ? ('0' + minute) : minute;
var second = date.getSeconds();
second = second < 10 ? ('0' + second) : second;
return y + '-' + m + '-' + d + ' ' + h + ':' + minute + ':' + second;
}
// 用法就是传时间对象 new Date(xxxxx)
下边这个更符合平时需求
Date.prototype.Format = function(fmt) {
//author: meizz
var o = {
"M+" : this.getMonth() + 1, //月份
"d+" : this.getDate(), //日
"h+" : this.getHours(), //小时
"m+" : this.getMinutes(), //分
"s+" : this.getSeconds(), //秒
"q+" : Math.floor((this.getMonth() + 3) / 3), //季度
"S" : this.getMilliseconds() //毫秒
};
if (/(y+)/.test(fmt))
fmt = fmt.replace(RegExp.$1, (this.getFullYear() + "").substr(4 - RegExp.$1.length));
for (var k in o)
if (new RegExp("(" + k + ")").test(fmt))
fmt = fmt.replace(RegExp.$1, (RegExp.$1.length == 1) ? (o[k]) : (("00" + o[k]).substr(("" + o[k]).length)));
return fmt;
}
// 这个就霸道了。
// 使用方法:
var a=new Date();
console.log(a.Format("yyyy-MM-dd")) //年月日
console.log(a.Format("yyyy-MM-dd hh:mm:ss")) //年月日时分秒
// 什么格式自己定制哦
基本方法
var myDate = new Date();
myDate.getYear(); //获取当前年份(2位)
myDate.getFullYear(); //获取完整的年份(4位,1970-????)
myDate.getMonth(); //获取当前月份(0-11,0代表1月)
myDate.getDate(); //获取当前日(1-31)
myDate.getDay(); //获取当前星期X(0-6,0代表星期天)
myDate.getTime(); //获取当前时间(从1970.1.1开始的毫秒数)
myDate.getHours(); //获取当前小时数(0-23)
myDate.getMinutes(); //获取当前分钟数(0-59)
myDate.getSeconds(); //获取当前秒数(0-59)
myDate.getMilliseconds(); //获取当前毫秒数(0-999)
myDate.toLocaleDateString(); //获取当前日期
var mytime=myDate.toLocaleTimeString(); //获取当前时间
myDate.toLocaleString( ); //获取日期与时间