2011-10-23 6 views
5

साथ विशिष्ट ID अगर मैं का उपयोग करें:समय()

$t = time(); 
echo $t; 

हो जाएगा ताकि उत्पादन कुछ की तरह:

  1. यह मान के रूप में इस्तेमाल किया जा सकता: 1319390934

    मैं दो प्रश्न हैं एक अलग पहचान ?

  2. इससे एक तारीख कैसे उत्पन्न करें?

मैं uniqid() का उपयोग नहीं कर सकता, क्योंकि मुझे एक मूल्य की आवश्यकता है जिसका उपयोग ऑर्डर करने के लिए किया जा सकता है (हालिया)।

+0

किस संदर्भ में अद्वितीय है? आप आईडी का उपयोग कैसे कर रहे हैं? ('microtime()' आमतौर पर अद्वितीय आईडी के लिए भी उपयोग किया जाता है)। –

+0

इस मामले में एक संख्या जिसे दोहराया नहीं जा सकता है। एसक्यूएल में एक अद्वितीय सूचकांक की तरह। – user947462

+0

डेटाबेस ऑटो-वृद्धि का उपयोग क्यों नहीं करें? – Manhim

उत्तर

9

time() उल्लेख किया का उपयोग करके आप अद्वितीय आईडी बनाने के लिए एक sortable रास्ता दे देंगे। श्रृंखलाबद्ध तार भी आगे अपने वांछित परिणाम randomize जाएगा और अभी भी यह sortable रखें: करने के लिए

$uniqueId= time().'-'.mt_rand(); 
+0

'microtime' sortable ??? क्या आपने देखा कि यह क्या लौटाता है? – Jon

+1

हाँ सुनिश्चित करें कि आप mt_rand पर हैं, अन्य बुद्धिमान दो या दो से अधिक उपयोगकर्ताओं के पास एक ही अद्वितीय आईडी हो सकती है यदि वे एक ही समय में आते हैं। – Mike

4
  1. स्पष्ट रूप से इसे "अद्वितीय" आईडी के रूप में उपयोग नहीं किया जा सकता है, ठीक है, यह एक ही सेकंड की अवधि के दौरान अद्वितीय नहीं है।
  2. date पर देखें।

    $u = time().'-'.uniqid(true); 
    

    मैं शायद अति-सरल बनाने रहा हूँ यहाँ ':

आप कुछ है जो एक विशिष्ट आईडी और दोनों क्रमबद्ध किया जा सके रूप में विज्ञापित है चाहते हैं, आप कुछ इस कि uniqid शामिल की तरह उपयोग कर सकते हैं , यह मानने के लिए कि सभी मूल्य time उत्पादन करने जा रहे हैं, अंकों की संख्या समान होगी (ताकि एक स्ट्रिंग सॉर्ट natural sort के समान परिणाम उत्पन्न करे)। आप इस धारणा बनाने के लिए नहीं करना चाहते हैं, तो आप पर विचार कर सकते

$u = sprintf("%010s-%s", time(), uniqid(true)); 
+0

चूंकि यह डेटाबेस के लिए है, इसलिए 'NOW()' कॉलम के साथ जोड़ा गया 'auto_increment' कॉलम भी उपयोग के आधार पर काम कर सकता है। –

1

आप एक वातावरण जहां एक अनन्य आईडी से उपयोगकर्ता खाता होना में इस कोड का उपयोग कर रहे हैं, तो आप समय (संलग्न कर सकते हैं) उनके एक अद्वितीय आईडी उत्पन्न करने के लिए खाता आईडी।

आप का उपयोग कर एक तारीख स्ट्रिंग में समय (कर सकते हैं) वापस:

$time = time(); 
echo 'The datestamp for (' . $time . ') is ' . date("Y-m-d", $time); 

बेशक दिनांक स्वरूप पीएचपी की तारीख के किसी भी() स्वरूप का उपयोग बदला जा सकता है।

संबंधित मुद्दे