2013-08-22 6 views
14

को देखते हुए निम्नलिखित कोड:कार्बन ऑब्जेक्ट प्रकार का उपयोग कैसे करें?

$recordSets = Model::find(1)->get(); 

foreach ($recordSets as $recordSet) { 
    dd($recordSet['created_at']); 
} 

मैं इस परिणाम मिला।

object(Carbon\Carbon)[292] 
    public 'date' => string '2013-08-21 17:05:19' (length=19) 
    public 'timezone_type' => int 3 
    public 'timezone' => string 'UTC' (length=3) 

मैं

echo $recordSet['created_at']->date; 

का उपयोग कर 'तारीख' का उपयोग करने की कोशिश की लेकिन मैं एक त्रुटि मिली:

Unknown getter 'date'

$recordSet['created_at'] कैसे उपयोग करने के लिए? यह सिर्फ दिनांक/समय के उद्देश्य के स्वरूपण के लिए है।

उत्तर

5

बस $recordSet['created_at'] का उपयोग करें।

कार्बन में __toString विधि के कारण, $recordSet['created_at'] पढ़ें स्ट्रिंग प्रारूप के तहत हमेशा दिनांक लौटाएगा।

आप कौन सी विधि आप उपयोग कर सकते हैं देखने के लिए चाहते हैं, को देखने के vendor/nesbot/carbon/Carbon/Carbon.php

+0

आप कार्बन के पीछे की विधि समझा रहे हैं, हालांकि उनकी समस्या का हल नहीं है। $ RecordSet ['create_at'] को कॉल करते समय उसे एक ऑब्जेक्ट प्राप्त होता है जिसमें संरक्षित कार्बन ऑब्जेक्ट होते हैं। कृपया संदर्भ लें: http://laravel.io/forum/03-06-2014-how-to-get-timestamp-integer-instead-of-carbon-object – tfont

+1

यह गलत है और इसे स्वीकार नहीं किया जाना चाहिए। $ recordSet ['created_at'] कार्बन ऑब्जेक्ट को स्ट्रिंग नहीं देता है। शेरिफ का जवाब सही है। –

23

आप सार्वजनिक समारोह toDateTimeString()

echo $recordSet['created_at']->toDateTimeString(); 
+1

त्रुटि: गैर-ऑब्जेक्ट – malhal

+0

पर किसी सदस्य फ़ंक्शन कोडेटाइमस्ट्रिंग() पर कॉल करें $ recordSet-> toDateTimeString(); फिर $ रिकॉर्डसेट ['create_at'] – Gokigooooks

4
public function getDates() { 
     return array(); 
    } 

प्लेस अपने मॉडल में इस कोड का उपयोग करना चाहिए। यह दिनांक उत्परिवर्तन अक्षम कर देगा।

+0

में सही समाधान यहां स्ट्रिंग डेटा प्राप्त करें। – tfont

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