js时间戳转换

小知识 09-01 21:21

js 时间与时间戳相互转换 

一、js时间转时间戳

javascript获得时间戳的方法有四种,都是通过实例化时间对象 new Date() 来进一步获取当前的时间戳

1)var timestamp1 = Date.parse(new Date()); // 结果:1614765490000 ,不推荐这种办法,毫秒级别的数值被转化为000
2)var timestamp2 = (new Date()).valueOf(); // 结果:1614765496923 ,通过valueOf()函数返回指定对象的原始值获得准确的时间戳值
3)var timestamp3 = new Date().getTime(); // 结果:1614765496923,通过原型方法直接获得当前时间的毫秒值,准确
4)var timestamp4 = Number(new Date()) ; // 结果:1614765496923 ,将时间转化为一个number类型的数值,即时间戳

二、js时间戳转时间

1)var timestamp5 = new Date(1614765496923);// 结果:Wed Mar 03 2021 17:58:16 GMT+0800 (中国标准时间),直接用 new Date(时间戳) 格式转化获得当前时间
2)var timestamp6 = timestamp5.toLocaleDateString().replace(///g, "-") + " " + timestamp5.toTimeString().substr(0, 8); //结果:2021-03-03 17:58:16

3)可以通过分别获取时间的年月日进行拼接,比如:

function getdate() {
    var now = new Date(),
     y = now.getFullYear(),
    m = ("0" + (now.getMonth() + 1)).slice(-2),
    d = ("0" + now.getDate()).slice(-2);
    return `${y}-${m}-${d} ${now.toTimeString().substr(0, 8)}`; 
}

结果:2021-03-03 18:03:35

三、js时间戳转换成年月日时分秒

<script type="text/javascript">        
    var strDate = '';
    $(function(){
        // 获取时间戳
        var nowDate = new Date().getTime(); //1614765466910
        // 调用封装好的时间转换方法
        timestampToTime(nowDate);
    }())
        
    function timestampToTime(timestamp) {
        var date = new Date();//时间戳为10位需*1000,时间戳为13位的话不需乘1000
        var Y = date.getFullYear() + '-';
        var M = (date.getMonth()+1 < 10 ? '0'+(date.getMonth()+1) : date.getMonth()+1) + '-';
        var D = (date.getDate() < 10 ? '0'+date.getDate() : date.getDate()) + ' ';
        var h = (date.getHours() < 10 ? '0'+date.getHours() : date.getHours()) + ':';
        var m = (date.getMinutes() < 10 ? '0'+date.getMinutes() : date.getMinutes()) + ':';
        var s = (date.getSeconds() < 10 ? '0'+date.getSeconds() : date.getSeconds());
            
        strDate = Y+M+D+h+m+s;
        return strDate;
            
    }
    console.log(strDate) //2021-03-03 17:57:46
</script>