繁体   English   中英

如何解释PHP time()函数

[英]How to interpret the PHP time() function

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

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

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

  • 它确实包括年份信息
  • 您可以将其传递给许多PHP日期函数 ,例如date()以根据需要输出时间

阅读有关Unix时间戳的更多信息

echo date("d.m.Y H:i:s", 1301888225);

//04.04.2011 03:37:05

Unix时间戳记可在32bit机器上使用,直到2038年1月19日为止,因此您可以安全地命名图片很长时间。 如果2个用户同时上传图片怎么办?

$filename = time()."_".mt_rand(0, 9999).".jpg";

在手册中有说明:

int time ( void )
 Returns the current time measured in the number of seconds since the 

Unix时代(格林尼治标准时间1970年1月1日00:00:00)。

因此,您不必担心重复的名称问题。 但是,您应该注意2038年的问题

如果两个用户在同一秒内上传文件怎么办? 为什么不只使用PHP分配给文件的临时名称?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM