每次用户上传新图片时,我们都会将图片重命名为PHP time()
函数的值,因此我们的数据库没有重复的图片名称(因为没有相同的年,月,日,小时,分钟和秒)。
我需要知道time()
的值是否包含年份。如果没有,那么明年将允许重复的图片名称。我如何理解time()
的返回值,例如1301888225?如何从该号码中获取年,月,日等信息?
答案 0 :(得分:3)
time()
返回当前的Unix时间戳。
date()
以输出您想要的时间阅读有关Unix timestamp
的更多信息答案 1 :(得分:2)
echo date("d.m.Y H:i:s", 1301888225);
//04.04.2011 03:37:05
Unix时间戳将在32位机器上运行,直到2038年1月19日,因此您可以安全地为图片命名很长时间。如果2位用户在同一秒上传图片怎么办?
$filename = time()."_".mt_rand(0, 9999).".jpg";
答案 2 :(得分:0)
手册中说明了这一点:
int time ( void )
Returns the current time measured in the number of seconds since the
Unix Epoch(1970年1月1日00:00:00 GMT)。
因此您不必担心重复的名称问题。但是,您应该了解the year 2038 problem。
答案 3 :(得分:0)
如果两个用户在同一秒内上传文件怎么办?为什么不直接使用PHP分配给文件的临时名称?