如何解释PHP time()函数

时间:2011-04-04 03:43:54

标签: php

每次用户上传新图片时,我们都会将图片重命名为PHP time()函数的值,因此我们的数据库没有重复的图片名称(因为没有相同的年,月,日,小时,分钟和秒)。

我需要知道time()的值是否包含年份。如果没有,那么明年将允许重复的图片名称。我如何理解time()的返回值,例如1301888225?如何从该号码中获取年,月,日等信息?

4 个答案:

答案 0 :(得分:3)

time()返回当前的Unix时间戳。

  • 确实包含年度信息
  • 您可以将其传递给许多PHP date functions,例如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分配给文件的临时名称?