最近在项目里面遇到一个处理时间戳 判断 了转回时间问题解决办法
需求是这样的 后台会给前台返回一个预约时间 例如 2020-9-16 08:10 然后我的前台要拿到当前系统时间
然后进行判断 如果 还未到时间 就把剩余的时间用弹窗显示出来 如果已经到了或者超出预约时间了 就弹出已经被预约等其他提示
<script>
//这个方法 需要传入两个时间 一个是 后端返回的时间
// 一个是 自己的 newDate的时间
var newDate = new Date()
var Dateyear = newDate.getMonth() + 1
var Datedata = newDate.getDate()
var Datefull = newDate.getFullYear()
var Datehouse = newDate.getHours()
var Dateminut = newDate.getMinutes()
Datehouse >= 10 ? Datehouse = Datehouse : Datehouse = '0' + Datehouse
Dateminut >= 10 ? Dateminut = Dateminut : Dateminut = '0' + Dateminut
var str = Datefull + '-' + Dateyear + '-' + Datedata + ' ' + Datehouse + ':' + Dateminut
function isDateTime(isOnetime,isTowtime){
//当前时间
let tm=new Date(isOnetime)
//后端传入时间
let tm2=new Date(isTowtiem)
let res=tm-tm2
//如果简单的判断的话是直接可以判断res>0 但是看需求文档
}
function getDuration(time){
//向上取整 拿到天数
var days = time / 1000 / 60 / 60 / 24;
var daysRound=Maht.floor(days)
// 获取小时-24*天数 剩余的小时就是多出的小时 因为上面已经获取到天数了 如果天数==0 那么这个就会 以一天24小时的来
var hours= time/1000/60/60-(24*daysRound);
//我们就拿到了 多余的小时
var dayHours=Math.floor(hours);
//获取到当前的多余的分钟
//取到还有多少分钟 time/1000/60
// 24*60-daysRound 首先算出一天的总分钟数 然后在乘以多出的天数 算出 总的分钟数
// 60*dayHours 首先我们要拿到 dayHours剩余的小时乘以60就可以得到分钟
// 把三个数进行相减就可以得到剩余的 分钟数
var minutes= time/1000/60-(24*60*daysRound)-(60*dayHours)
//剩余分钟数
var dayminutes=Math.floor(minutes)
//然后咱们开始字符串拼接首先
//需要判断 这个值 首先判断天数是否大于0
if( daysRound>0) {
//如果天数大于0 说明他就还会有有剩余的时间值 所以我们要把剩余的都返回出去
return daysRound+'天'+dayHours+'小时'+dayminutes+'分'
}else if(dayHours>0){
return dayHours+'小时'+dayminutes+'分'
}else if(dayminutes>0){
dayminutes+'分
}else{
return '数据错误请联系管理员'
}
}
</script>