全网JS获取时间大全实例

99 阅读2分钟

在日常工作中,对于时间的处理,还是用的比较多的,最近有空把自己日常工作处理时间的整理出来,如果觉得有帮助的话记得点赞关注,谢谢了

获取指定时间的时间戳

let starttime = new Date('2018.1.1 00:00').getTime()
let endtime = new Date('2099.12.30 23:59').getTime()

获取当前月的 第一天 和最后一天

 let date = new Date();
 let starttime = new Date(date.getFullYear(), date.getMonth(), 1).getTime();
 let endtime = new Date(date.getFullYear(), date.getMonth() + 1, 0).getTime();

获取当日的 00:00:00 - 23:59:59

let starttime = new Date(new Date(new Date().toLocaleDateString()).getTime()).getTime() 
let endtime = new Date(new Date(new Date().toLocaleDateString()).getTime() + 24 * 60 * 60 * 1000 -1).getTime() 

封装方法

const getTodayStart = () => {
  let now = new Date();
  return strToDate(formatTime(now).split(' ')[0] + ' 00:00:00');
}
// 日期 23点
const getTodayEnd = () => {
  let now = new Date();
  return strToDate(formatTime(now).split(' ')[0] + ' 23:59:59');
}

获取最近12小时 和当前时间

let starttime = new Date(new Date().getTime() - 12 * 60 * 60 * 1000).getTime(); //前12个小时
let endtime = new Date().getTime()

获取最近1个月 和当前时间

 let nowdate = new Date();
 let starttime = nowdate.setMonth(nowdate.getMonth()-1) //前一个月
 let endtime = new Date().getTime()

获取最近1年 和当前时间

let pre = new Date()
let starttime = pre.setFullYear(pre.getFullYear()-1) //前一年
let endtime = new Date().getTime()

时间戳转日期的方法

let date = new Date(时间戳)
let time = formatTime(date)
//  时间戳转成日期
const formatTime = (date, flag) => {
  const year = date.getFullYear()
  const month = date.getMonth() + 1
  const day = date.getDate()
  const hour = date.getHours()
  const minute = date.getMinutes()
  const second = date.getSeconds()
  let result = [year, month, day].map(formatNumber).join('-') + ' ' + [hour, minute, second].map(formatNumber).join(':')
  if (flag) {
    result = result.replace(/\-|\:|\s/g, '')
  }
  return result
}

小程序 处理时间日期,在ios手机下日期问题

const strToDate = (str) => {
  // let d = new Date(str)
  let d = null;
  if (typeof str === 'object' || typeof str === 'number') return new Date(str);
  if (!str) return new Date();
  str = str.replace('T', ' ').replace(/\//g, '-');
  //if(d == null) {
    let date = str.split('.')[0].split(' ')
    let days = date[0].split('-')
    let times = date.length == 1 ? ['00', '00', '00'] : date[1].split(':')
    d = new Date()
    d.setFullYear(days[0])
    d.setMonth(parseInt(days[1]) - 1)
    d.setDate(days[2])
    d.setHours(times[0])
    d.setMinutes(times[1])
    d.setSeconds(times[2])
    if (d.getHours() != times[0]) {
      d.setHours(parseInt(times[0]) + 8) 
    }
    //}
  // console.log('over:', str, ',', d);
  return d
}

16进制转10进制

const hex2int = (hex) => {
    var len = hex.length, a = new Array(len), code;
    for (var i = 0; i < len; i++) {
        code = hex.charCodeAt(i);
        if (48<=code && code < 58) {
            code -= 48;
        } else {
            code = (code & 0xdf) - 65 + 10;
        }
        a[i] = code;
    }
     
    return a.reduce(function(acc, c) {
        acc = 16 * acc + c;
        return acc;
    }, 0)
}

16进制转10进制转时间戳

let water = util.hex2int(historyWaterLog[0].waterTime) *1000

16进制转10进制转秒

let water = util.hex2int(historyWaterLog[0].waterTime)

// 转成天+小时+秒
const secondRe = (time) => {
  var result = "0秒";
  if(time == undefined){
  return result;
  }
  time = parseInt(time);
  if (time != null && time > 0) {
  if (time < 60) {
  result = time + "秒";
  } else if (time > 60 && time < 60 * 60) {
  result = parseInt(time / 60 % 60) + "分" + parseInt((time % 60) % 60) + "秒";
  } else if (time >= 60 * 60 && time < 60 * 60 * 24) {
  result = parseInt(time / 60 / 60 % 24) + "时" + parseInt(time / 60 % 60) + "分" ;
  } else if (time >= 60 * 60 * 24 && time < 60 * 60 * 24 * 365) {
  result = parseInt(time / 24 / 60 / 60 % 365) + "天" + parseInt(time / 60 / 60 % 24) + "时"+ parseInt(time / 60 % 60) + "分";
  }
  // else if (time > 60 * 60 * 24 * 365) {
  // result = parseInt((time / 24 / 60 / 60 / 30)) + "年" + parseInt(time / 24 / 60 / 60 % 365) + "天" ;
  // } 
  else {
  result = time + "秒";
  }
  }
  return result;
}