javaScript把时间戳转换为时间格式(已处理兼容格式)

大家好,我是小C,我们来讲讲时间戳转换为时间的方法,这是我平时在做AJAX的时候比较常要用到的一个东西,从后台PHP拿回来的时间值都是时间戳,那时间戳的位数也不尽相同,现在和我配合的这位PHP给的是10位数的,而在我们前端代码获取的是13位的,其实就是多了毫秒而已,每个语言的每个方法获取的位数都不一定相同,不过这没关系,都是可以处理的。不多说,直接上代码:

第一种方法:把时间戳转换实际时间(无格式兼容,不建议使用)

// nS 为十位数时间戳   
function getLocalTime(str) {
   return new Date(parseInt(str) * 1000).toLocaleString().replace(/:\d{1,2}$/,' ');
}
// 用法:
getLocalTime(str)

第二种方法:(也是最推荐使用:做了兼容处理,在各个浏览器下不会出现格式不一样!)

 // 参数 str 为时间戳 可以传入10位也可以传入13位
 // 参数 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];

这就是我的两个方法,当然推荐第二种,好啦,今天就分享这些,有不足的地方,请多多指教,欢迎在评论区说出您的意见或建议。

猜你喜欢

转载自www.cnblogs.com/H-csy/p/8888478.html