大家好,我是小C,我们来讲讲时间戳转换为时间的方法,这是我平时在做AJAX的时候比较常要用到的一个东西,从后台PHP拿回来的时间值都是时间戳,那时间戳的位数也不尽相同,现在和我配合的这位PHP给的是10位数的,而在我们前端代码获取的是13位的,其实就是多了毫秒而已,每个语言的每个方法获取的位数都不一定相同,不过这没关系,都是可以处理的。不多说,直接上代码:
第一种方法:把时间戳转换实际时间(无格式兼容,不建议使用)
// str 为十位数时间戳 function getLocalTime(str) { return new Date(parseInt(str) * 1000).toLocaleString().replace(/:d{1,2}$/,' '); }
// 用法:getLocalTime(str)
第二种方法:(也是最推荐使用:做了兼容处理,在各个浏览器下不会出现格式不一样!)
// 参数 str 为时间戳 可以传入10位也可以传入13位
// 参数 bool的值可传true或者false或者不传,如果需要显示秒则传true,不需要显示则传false或者不传
// 参数 bool的值可传true或者false或者不传,如果需要显示秒则传true,不需要显示则传false或者不传
function getMyDate(str, bool){ if(str > 9999999999) { // 这里判断:时间戳为几位数 var c_Date = new Date(parseInt(str)); } else { var c_Date = new Date(parseInt(str) * 1000); } var c_Year = c_Date.getFullYear(), c_Month = c_Date.getMonth()+1, c_Day = c_Date.getDate(), c_Hour = c_Date.getHours(), c_Min = c_Date.getMinutes(), c_Sen = c_Date.getSeconds(); if(bool) { // 判断是否需要显示秒 var c_Time = c_Year +'-'+ getzf(c_Month) +'-'+ getzf(c_Day) +' '+ getzf(c_Hour) +':'+ getzf(c_Min) +':'+getzf(c_Sen);//最后拼接时间 } else { var c_Time = c_Year +'-'+ getzf(c_Month) +'-'+ getzf(c_Day) +' '+ getzf(c_Hour) +':'+ getzf(c_Min);//最后拼接时间 } return c_Time; }; //补0操作 小于10的就在数字前面加0,这应该很好理解吧
function getzf(c_num){ if(parseInt(c_num) < 10){ c_num = '0' + c_num; } return c_num; } // 用法: // 需要显示秒:getMyDate(1523927510, true) // 不需要显示秒:① getMyDate(1523927510, false) ② getMyDate(1523927510) // 如果只需要时间: getMyDate(1523927510, true).split(" ")[1]; // 如果只需要日期: getMyDate(1523927510, true).split(" ")[0];
这就是我的两个方法,当然推荐第二种,好啦,今天就分享这些,有不足的地方,请多多指教,欢迎在评论区说出您的意见或建议。