本文详解JavaScript与PHP时间戳的差异,指出JS为13位毫秒级而PHP为10位秒级。提供完整的JavaScript函数,实现将PHP回传的10位时间戳转换为前端友好的相对时间格式(秒前、分钟前、小时前、天前),并包含具体的代码示例与调用方法。
JS与PHP时间戳差异说明
需要特别注意,JavaScript生成的时间戳通常为13位(毫秒级),而PHP生成的时间戳通常为10位(秒级)。在进行两者交互时,必须进行相应的单位转换。
弹出结果验证:alert(t);
时间转换与相对时间计算代码
具体实现代码如下:
获取当前系统时间戳:var nowtime = (new Date).getTime();/*当前时间戳*/
定义一个用于计算并格式化时间差的函数:/*转换时间,计算差值*/
function comptime(beginTime,endTime){
首先计算两个时间戳之间的秒数差值,注意将JS的13位时间戳转换为秒:var secondNum = parseInt((endTime-beginTime*1000)/1000);//计算时间戳差值
判断差值是否在60秒以内:if(secondNum>=0&&secondNum<60){
返回“XX秒前”的格式:return secondNum+'秒前';
}
} else if (secondNum>=60&&secondNum<3600){
计算分钟数:var nTime=parseInt(secondNum/60);
返回“XX分钟前”的格式:return nTime+'分钟前';
}
} else if (secondNum>=3600&&secondNum<3600*24){
计算小时数:var nTime=parseInt(secondNum/3600);
返回“XX小时前”的格式:return nTime+'小时前';
}
} else{
计算天数:var nTime = parseInt(secondNum/86400);
返回“XX天前”的格式:return nTime+'天前';
}
}
t = comptime("1324362556",nowtime);//timestamp为PHP通过ajax回传的时间戳
调用示例:假设通过Ajax从PHP获取了一个10位的时间戳,传入函数进行计算:t = comptime("1324362556",nowtime);//timestamp为PHP通过ajax回传的时间戳