转换字符串格式的时间为类似“几秒前”、“几分钟前”、“几小时前”、“几天前”等格式,通常需要先将字符串格式的时间转换成时间戳,然后获取当前时间戳与字符串格式时间戳之间的差值,最后根据差值计算出对应的时间差,即可得到所需的格式化时间。
以下是完整的攻略:
步骤一:将字符串时间转换成时间戳
在JS中可以使用Date对象将字符串格式的时间转换成时间戳,具体代码如下:
var timestamp = new Date('2021/08/23 15:00:00').getTime();
这个例子中,将字符串格式的时间'2021/08/23 15:00:00'转换成了时间戳,存储在变量timestamp中。
步骤二:获取当前时间戳并计算时间差
获取当前时间戳可以使用JS中的Date对象的getTime()方法,代码如下:
var currentTimestamp = new Date().getTime();
var diff = currentTimestamp - timestamp;
这里的diff变量存储了当前时间戳与字符串时间戳之间的差值。
步骤三:计算时间差并输出格式化时间
计算时间差时,可以根据差值算出对应的秒、分钟、小时、天数等,然后输出格式化的时间。
以下是一个例子,其中timestamp表示要格式化的字符串格式的时间对应的时间戳:
function formatTime(timestamp) {
// 获取当前时间戳
var currentTimestamp = new Date().getTime();
// 计算时间差
var diff = currentTimestamp - timestamp;
// 计算相差的秒数
var seconds = Math.floor(diff / 1000);
// 计算相差的分钟数
var minutes = Math.floor(seconds / 60);
// 计算相差的小时数
var hours = Math.floor(minutes / 60);
// 计算相差的天数
var days = Math.floor(hours / 24);
// 输出格式化时间
if (seconds < 60) {
return seconds + '秒前';
} else if (minutes < 60) {
return minutes + '分钟前';
} else if (hours < 24) {
return hours + '小时前';
} else {
return days + '天前';
}
}
// 测试例子,输出格式化时间
console.log(formatTime(new Date('2021/08/23 15:00:00').getTime())); // 输出:4天前
上述例子中,传入的是字符串格式时间'2021/08/23 15:00:00'对应的时间戳,经过计算后输出了格式化时间"4天前"。如果传入的是当前时间戳,则输出格式化时间"刚刚"。
另一个例子,传入的是1970年1月1日00:00:00的时间戳,输出格式化时间"51年前":
console.log(formatTime(0)); // 输出:51年前
这是因为1970年1月1日00:00:00的时间戳为0,到现在(2021年8月27日)已经过了51年。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:JS把字符串格式的时间转换成几秒前、几分钟前、几小时前、几天前等格式 - Python技术站