美文网首页
JavaScript 时间操作

JavaScript 时间操作

作者: nCov | 来源:发表于2019-05-18 19:58 被阅读0次

new Data() 返回时间格式如 Sat May 18 2019 18:58:49 GMT+0800 (中国标准时间)
JavaScript 默认返回的 GMT时间;
整个地球分为二十四时区,每个时区都有自己的本地时间,为了统一起见,使用一个统一的时间,称为通用协调时(UTC),UTC与GMT是一样都与英国伦敦的本地时相同。

但是我们需要的是北京时间

function time() {
   let time = +new Date()
   var date1 = new Date(time + 8 * 3600 * 1000); // 增加8小时
   var date2=  new Date(time + 30* 86400000 +8 * 3600 * 1000); // 往后30天
   console.log(date1.toJSON().substr(0, 19).replace('T', ' '))
   console.log(date2.toJSON().substr(0, 19).replace('T', ' '))
   
}

let k=time()

返回结果如下

> 2019-05-18 18:58:49   //当前北京时间
> 2019-06-17 18:58:49  //往后30天的北京时间
new Date(time + 8 * 3600 * 1000)
 8 * 3600 * 1000 = 8h * 1h=3600s * 1s==1000ms
 8h=28800000ms   //以为毫秒计算
new Date(time + 30* 86400000 +8 * 3600 * 1000);
30day * 24h=86400000 +8 * 3600 * 1000  
实际上也可以这样写
new Date(time + 30* 86400000 +28800000);

关于此处的时间格式转换来自https://segmentfault.com/a/1190000015992232

GMT转为时间戳,时间戳转为格式时间操作

function time() {
    let time = +new Date()
    var date1 = new Date(time + 8 * 3600 * 1000); // 增加8小时
    var date2=  new Date(time + 30* 86400000 +8 * 3600 * 1000); // 往后30天
    
    this.timestampToTime(Number(date1),Number(date2))
    //此处Number() 将时间(Date)转时间戳(Timestamp)13位时间戳
}


//timestampToTime 将时间戳 转为格式时间
function timestampToTime(timestamp1,timestamp2) {
      var time1 = new Date(timestamp1);
      var time2 = new Date(timestamp2);
      console.log(time1.toJSON().substr(0, 19).replace('T', ' '))
      console.log(time2.toJSON().substr(0, 19).replace('T', ' '))
    }
   
time()
//输出结果
> 2019-05-18 19:55:47
> 2019-06-17 19:55:47

格式时间 转 时间戳 及时间戳转格式日期

/*
  将格式时间转为时间戳
  substring()方法用于提取字符串中介于两个指定下标之间的字符
  @2019-05-19 09:37:08
  @这里没有设置毫秒 因为基本时间格式已满足需求
   如需要设置可以使用setMilliseconds() 方法
   前提传递的时间格式也有毫秒参数

  @这里输出的是13位时间戳,如果要输出10位时间戳可以使用
    Date.parse(date)/1000;
*/
function timestampToTime(endTime){
 var date = new Date();
 
    date.setFullYear(endTime.substring(0, 4));//设置年份
    date.setMonth(endTime.substring(5, 7) - 1);//设置月份
    date.setDate(endTime.substring(8, 10));   //设置一个月的某一天
    date.setHours(endTime.substring(11, 13));  //设置小时
    date.setMinutes(endTime.substring(14, 16));//设置分
    date.setSeconds(endTime.substring(17, 19));//设置秒
    console.log(Date.parse(date)) ; 
   this.formatDateTime(Date.parse(date))
      
}

/*将时间戳转为格式时间

*/
function formatDateTime(timeValue) {
                    var date = new Date(timeValue);
                    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();
                    var second = date.getSeconds();
                    minute = minute < 10 ? ('0' + minute) : minute;
                    second = second < 10 ? ('0' + second) : second;
                    console.log( y + '-' + m + '-' + d + ' ' + h + ':' + minute + ':' + second);
                };




timestampToTime('2019-05-17 09:37:08')

相关文章

网友评论

      本文标题:JavaScript 时间操作

      本文链接:https://www.haomeiwen.com/subject/uuztzqtx.html