2015-04-16 14 views
26

मैं दो timestamps, edited_at जो मैं बनाया है और created_at (Laravel के) ... डेटाबेस में, दोनों प्रकार टाइमस्टैम्प और डिफ़ॉल्ट मान 0000-00-00 00:00:00 है ... लेकिनदो कार्बन टाइमस्टैम्प की तुलना कैसे करें?

var_dump(edited_at variable) है स्ट्रिंग दे रहा है। जबकि var_dump(created_at variable) ऑब्जेक्ट/कार्बन है। इन टाइमस्टैम्प के साथ क्या गलत है?

मुझे प्रारूप ('यू') का उपयोग करके पूर्णांक में परिवर्तित करने के बाद दोनों की तुलना करना है। मैं केवल कार्बन ऑब्जेक्ट पर इस विधि को कॉल कर सकता हूं। मैं उसे कैसे कर सकता हूँ?

+0

आप वास्तव में क्या तुलना करना चाहते हैं? क्या आप जानना चाहते हैं कि कौन सा पुराना/नया है? – lukasgeiter

+0

हाँ, मैं पुराने/नए –

+0

कैंपर करना चाहता हूं http://carbon.nesbot.com/docs/#api-comparison – ceejayoz

उत्तर

75

सबसे पहले, एलोक्वेंट स्वचालित रूप से कार्बन ऑब्जेक्ट्स में इसके टाइमस्टैम्प (created_at, updated_at) को परिवर्तित करता है। अब वापस अपने वास्तविक प्रश्न के

protected $dates = ['edited_at']; 

: तुम बस updated_at अपने मॉडल में $dates संपत्ति में इस्तेमाल कर सकते हैं कि अच्छा सुविधा प्राप्त करने के लिए, या निर्दिष्ट edited_at। कार्बन तुलना कार्यों का एक समूह है:

  • eq() के बराबर होती है
  • ne()
  • gt() से
  • gte() अधिक से अधिक से अधिक नहीं के बराबर या बराबर होती है
  • lt()
  • lte() कम से कम या इसके बराबर की तुलना में कम

उपयोग:

if($model->edited_at->gt($model->created_at)){ 
    // edited at is newer than created at 
} 
+0

मैं केवल तिथियों की तुलना कैसे कर सकता हूं, न कि समय? – geckob

+2

@geckob शायद सबसे आसान है '$ date1-> toDateString() == $ date2-> toDateString() ' – lukasgeiter

+0

मैं परीक्षण कर रहा हूं और कार्बन ऑब्जेक्ट्स की तुलना करने के लिए तुलना ऑपरेटर का उपयोग करना संभव है। क्या यह एक नई सुविधा है? – JCarlos

1

सबसे पहले, के रूप में वर्णित in this answer, टाइमस्टैम्प निर्मित वाक्पटु कार्यक्षमता का उपयोग परिवर्तित।

फिर आप तुलना के लिए कार्बन के min() या max() फ़ंक्शन का उपयोग कर सकते हैं। उदाहरण के लिए:

$dt1 = Carbon::create(2012, 1, 1, 0, 0, 0); $dt2 = Carbon::create(2014, 1, 30, 0, 0, 0); echo $dt1->min($dt2);

यह दो तिथियों, जो इस मामले में $dt1 है के कम echo होगा।

http://carbon.nesbot.com/docs/

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