个人笔记016--js中的new Date(时间对象和时间戳操作)

js实现new Date(),时间对象和时间戳操作
1、js中实现时间date对象
1)、var date1 = new Date();
  //结果:Mon May 13 2019 13:44:57 GMT+0800 (中国标准时间), 直接用 new Date(时间戳) 格式转化获得当前时间;

2)、var date2 = date1.toLocaleDateString().replace(/\//g, "-") + " " + date2.toTimeString().substr(0, 8)); 
  //结果:谷歌一类浏览器为"2019-5-13 13:44:57" IE一类为"2019年5月13日 13:44:57"
3)、利用拼接正则等手段转化为yyyy-MM-dd hh:mm:ss 或者yyy/MM/dd hh:mm:ss等格式
var getNowFormatDate = function(date,flag) {//flag判断是否需要时分秒
    var boo = date instanceof Date
    if(!boo) return date
    var fn= function(str){
        if (str < 10) str = "0" + str;
                return str
        }
    var month = date.getMonth() + 1;
    var strDate = date.getDate();
    var currentdate = date.getFullYear() + "-" + fn(month) + "-" + fn(strDate)
    if(flag) return currentdate
    var hours = date.getHours();
    var minutes = date.getMinutes();
    var seconds = date.getSeconds();  
    currentdate = currentdate + " " + fn(hours) + ":" + fn(minutes) + ":" + fn(seconds);
    return currentdate
}
time01 = '2019-5-13 13:44:57';
getNowFormatDate(time01,true)//结果为2019-05-13
time02 = 1557726297000;
getNowFormatDate(new Date(time02),true)//结果为2019-05-13
getNowFormatDate(new Date(time02))//结果为2019-05-13 13:44:57
注意:在JS中,new Date(time02)里面参数time02对应的是13位的数字时间戳,否则会有问题,如果后台返回来十位数直接乘以1000
2、获取new Date对象的具体时间戳
1)、var timestamp1 = (new Date()).valueOf();
  // 结果:1557726297000,通过valueOf()函数返回指定对象的原始值获得准确的时间戳值;

2)、var timestamp2 = new Date().getTime();
  // 结果:1557726297000,通过原型方法直接获得当前时间的毫秒值,准确;

3)、var timetamp3 = Number(new Date()) ;
  //结果:1557726297000,将时间转化为一个number类型的数值,即时间戳;

猜你喜欢

转载自blog.csdn.net/Dream02_05/article/details/90172648