JavaScript 时间的操作
1. 标准日期格式 转 时间戳
第一步,设置一个标准日期,获取这个日期格式的时间戳
let timeStr = "2020-08-10 12:34:45"; let newTime = timeStr.replace(/-/g,"/"); //需要转化成这样的时间格式 2020/08/10 12:34:35 let createTime = new Date(newTime).getTime(); // 最后结果,毫秒下的时间,
第二步,时间戳转化标准日期格式
function timetrans(date){ var date = new Date(date);//如果date为13位不需要乘1000, var date = new Date(date*1000) ,因为getTime是精确到毫秒 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()); return Y+M+D+h+m+s;
}
// 2020-08-10 00:00:00
2. 根据时间戳差值判断,几分钟前,几个小时前 ,正常日期格式
let createTime = new Date("2020-08-10 21:10:00").getTime(); console.log("获取指定时间戳= "+createTime);
// 注意,时间戳要数字类型 ,不能NaN let nowTime = new Date().getTime(); console.log("获取当前时间戳= "+nowTime); let temp = nowTime-createTime; console.log("时间的差值= "+temp); //毫秒,转化成秒,转化成分钟,时间 let result = temp/1000/3600; console.log('结果'+result); if(result<1){ //多少分钟前 console.log(parseInt(result*60)+'分钟前'); }else if(result>=1&&result<=24){ console.log(parseInt(result)+"小时前"); }else { //具体时间 }
3. 通过时间,给对象排序
//将新数组里面的元素,通过时间进行排序
function compare(p){
return function(m,n){
let a = m[p];
let b = n[p];
let newTimeA = a.replace(/-/g,"/");
let newTimeB = b.replace(/-/g,"/");
let date1 = new Date(newTimeA);
let date2 = new Date(newTimeB);
return date2-date1;
}
}
MessageArr.sort(compare("time"));
//将数据设置回去(react native 操作)
this.setState({
interActiveMessage: MessageArr
});