罗列几个js的时间函数和基本方法

本文分享了一种计算两个时间戳之间差值的方法,并详细解释了如何将毫秒数转换为天、小时、分钟和秒的格式。同时,介绍了几种时间格式化的函数,包括将日期对象转换为指定格式字符串的技巧。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

刚开始我开始接触时间差的时候,我特别的傻的用,时间和时间相减,琢磨一会,一个非常严重的问题就是跨月跨天咋弄涅。。额。。尴尬了。。这也就是菜鸟才会这样吧,我第一个用到的时间函数,出处已经不知道了,用着还行。

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( ); //获取日期与时间

 

评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值