如何解释PHP time()函数

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

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

展开原文

原文

Every time a user uploads a new picture, we rename the picture to the value of PHP's time() function, so our database doesn't have duplicate picture names (because there is no same year, month, day, hour, min and sec).

I need to know whether or not the value of time() includes the year. If not, then next year will allow duplicated picture names. How do I understand the return value of time(), for example 1301888225? How do I get year, month, day, etc. information out of that number?

php
dt20081409
中国通信 总是检查php.net手册,那里晶莹剔透。
9 年多之前 回复

4个回答



  echo date(“dmY H:i:s”,1301888225); 

// 04.04.2011 03 :37:05
</ code> </ pre>

Unix时间戳将在32位机器上运行,直到2038年1月19日,因此您可以安全地为图片命名很长时间。 如果2个用户在同一秒上传图片怎么办?</ p>

  $ filename = time()。“_”。mt_rand(0,9999)。“。jpg”; \  n </ code> </ pre> 
</ div>

展开原文

原文

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

//04.04.2011 03:37:05

Unix timestamp will work on 32bit machines until January 19, 2038 so you can safely name your pictures for a long time. What if 2 users upload a picture at the same second?

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

duandan4680
duandan4680 即使在这种情况下,随机数也没有提供额外的价值,因为它有潜在的冲突。 如果用户有自己的目录,那么时间戳就足够了。 从理论上讲,用户不能或不应该在同一时间上传内容。 在这种情况下,添加随机数的底线不是解决方案。 它只会减少冲突。 不要避免一个。 那是弱酱。 第一次正确建造。
9 年多之前 回复
doukang2003
doukang2003 McCreary,是的,但也取决于目录结构,如果每个用户都拥有自己的文件夹,那么时间戳+随机数对于毫无价值。
9 年多之前 回复
dqkf49487
dqkf49487 你没有。 如果您使用user-id(假设它是唯一的),则没有理由。 正如亚历克斯所指出的,随机数有它自己的冲突,所以它是毫无价值的IMO。 这并不是说同一个用户可以上传多个图片,而是多个用户可以在同一秒上传图片。
9 年多之前 回复
doucheng2053
doucheng2053 因为我们有唯一的用户ID,为什么我们仍然需要随机 - 否? 当用户在同一秒上传多张图片时,是否只是为了避免重复的图片名称? 用户如何在同一秒上传多张图片? 这是非常不可能的。 大声笑。
9 年多之前 回复
dongqiao9583
dongqiao9583 只需添加另外9,它将更加不可思议:)这是可能的。
9 年多之前 回复
dqtiober37522
dqtiober37522 随机数可以返回两次相同的数字。 不太可能,但非常有可能。
9 年多之前 回复
duannan4486
duannan4486 Waduwawara,我添加了随机数来证明。
9 年多之前 回复
dongyu8694
dongyu8694 如果您要将文件保存到目录结构,我建议<user-id> _ <time-stamp> _ <random-no>。<ext>表示文件名。
9 年多之前 回复



time()</ code>返回当前的Unix时间戳。</ p>

    \ n
  • 确实包含年份信息</ li>
  • 您可以将其传递给 PHP日期函数,例如 date()</ code>输出你想要的时间</ li>
    </ ul>

    阅读有关 Unix时间戳 </ p>
    </ div>的更多信息

展开原文

原文

time() returns the current Unix timestamp.

  • It does include year information
  • You can pass it to many of the PHP date functions, such as date() to output time however you want

Read the more about the Unix timestamp

dpowt82802
dpowt82802 我知道了。 谢谢。
9 年多之前 回复
douzai3399
douzai3399 没有算法,即1970年1月1日00:00:00 GMT的秒数。 一个简单的柜台。
9 年多之前 回复
download92000
download92000 我看过你之前给我看过的页面,所以time()值的算法是周x小时x分x秒。 那么它是否意味着时间()不包括年份的信息? 那么明年图片名称会重复吗?
9 年多之前 回复



手册中说明了这一点:</ p>

  int time(void)
< / code> </ pre>


 返回自
</ code> </ pre>

Unix Epoch(1970年1月1日00:00:00
GMT)。</ p>
</ blockquote>

因此您不必担心重复的名称问题。 但是,您应该了解 2038年问题。</ p>
</ div >

展开原文

原文

It's stated in the manual:

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

Unix Epoch (January 1 1970 00:00:00 GMT).

So you don't have to worry about the duplicated name issue. However, you should be aware of the year 2038 problem.

dongzhuo1880
dongzhuo1880 实际上我看到了这些信息,但我不明白这句话“自unix时代开始以秒为单位测量......”。 但现在我理解了,这完全归功于@ webarto上面的答案:“这是1970年1月1日00:00:00 GMT的秒数。一个简单的计数器”。
9 年多之前 回复



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

展开原文

原文

What if two users upload a file in the same second? Why don't you just use the temporary name PHP assigns to the file?

dragon071111
dragon071111 嘿,最后我找到了最好的解决方案。 由于所有用户都有唯一的用户名,我可以使用$ new-pic-name = $ username。 时间(); 所以当有多个用户在同一秒上传图片时,他们的图片名称也不能相同,因为图片名称包含他们唯一的用户名。
9 年多之前 回复
duanpuqi9965
duanpuqi9965 为了避免可能的问题,为文件名添加一个随机数。 看看我的回答。
9 年多之前 回复
duanduo3712
duanduo3712 当你从内存上传检查$ _FILES ['file'] ['tmp_name']时。 我相信可能的问题被称为竞争条件。
9 年多之前 回复
drlq92444
drlq92444 em,如果两个用户同时上传图片,mysql同时获取新图片的名称,那么2个新图片的名称也会一样吗? 我的天啊。
9 年多之前 回复
dongtu9823
dongtu9823 临时名称的用法是什么? 这个怎么运作? 我想重命名图片从1开始,第2个图片名称为2,第3个图片名称为3.因此当用户上传新图片时,mysql需要检查最新图片的名称。 假设最新图片名称存储在变量$ lstname中,新图片必须重命名为$ lstname + 1
9 年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐