2011-10-12 10 views
9

मैं डीडी-एमएम-वाई प्रारूप में $ पंक्ति-> जमा राशि प्रदर्शित करना चाहता हूं।पीएचपी स्ट्रेटोटाइम 1 9 70 की तारीख देता है जब दिनांक कॉलम शून्य है

तो डेटाबेस में तारीख स्तंभ है अशक्त प्रदर्शित की गई तिथि है: तिथि डेटाबेस यह कुछ भी नहीं प्रदर्शित करना चाहिए में नल है, dd-mm में अन्यथा तारीख 01-01-1970

echo "<td align=center>".date('d-m-Y', strtotime($row->depositdate))."</td>"; 

हैं --yyy प्रारूप प्रदर्शित किया जाना चाहिए।

अग्रिम धन्यवाद

संदीप

+0

चयन करने के लिए फिर देखें कि मान शून्य है और अगर ऐसा है, आप के लिए अपने काम करने के लिए की उम्मीद नहीं है 'date' समारोह - प्रदर्शन खाली स्ट्रिंग, अन्यथा 'दिनांक' फ़ंक्शन आउटपुट प्रदर्शित करें। –

उत्तर

16

शून्य strtotime से 0 के रूप में व्याख्या की है, क्योंकि यह एक पूर्णांक टाइमस्टैम्प पारित किया जा करना चाहते हैं। 0 का टाइमस्टैम्प 1-1-19 70 का मतलब है।

तो $row->depositdate === NULL पर आपको खुद को जांचना होगा, और यदि ऐसा है, तो स्ट्रेटोटाइम बिल्कुल कॉल न करें।

+0

धन्यवाद GolezTrol .... – Sandy505

6

NULL 0 में बदल जाती है - युग (1-1-1970)

इस बजाय

echo "<td align=center>".($row->depositdate ? date('d-m-Y', strtotime($row->depositdate)) : '')."</td>"; 
+0

यह सही था! –

0

आपने पहले is_null depositdata अगर $ row-> की जाँच करें या बाद 0 के लिए जाँच करने की आवश्यकता है स्ट्रेटोटाइम अगर $ पंक्ति-> जमाडेटा का मूल्य strtotime के लिए अपरिचित है।

echo "<td align=center>"; 
    if (!is_null($row->depositdate)) 
    { 
    $jUnixDate = strtotime($row->depositdate)); 
    if ($jUnixDate > 0) 
    { 
      echo date('d-m-Y', $jUnixDate); 
    } 
    } 
    echo "</td>"; 

strtotime एक स्ट्रिंग एक अंग्रेजी दिनांक स्वरूप युक्त दिए जाने की और, (1 जनवरी 1970 00:00:00 यूटीसी के बाद से सेकंड की संख्या) एक Unix timestamp में उस प्रारूप पार्स करने के लिए टाइमस्टैम्प के सापेक्ष की कोशिश करेंगे की उम्मीद अब दिया गया है, या वर्तमान समय अगर अब आपूर्ति नहीं की जाती है। http://en.wikipedia.org/wiki/Year_2038_problem

-1

ओह:

unixtime और Y2K38 समस्या के बारे में अधिक

! मुझे पता है ऐसा क्यों होता है? बस आपने अपनी SELECT क्वेरी में "depositdate" शामिल नहीं किया है। सबसे पहले एसक्यूएल क्वेरी परिवर्तित वाइल्ड कार्ड पर हस्ताक्षर के साथ सभी तरह यहाँ दिखाया गया

$sql = "SELECT * FROM `yourtable`"; 
+0

आप कैसे जानते हैं कि मैंने SELECT क्वेरी में "depositdate" शामिल नहीं किया है? प्रश्न सावधानी से पढ़ें ..... – Sandy505

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