2015-09-22 4 views
8

से अधिक है तो मैंने अपने आवेदन के लिए PHP कार्बन का उपयोग करना शुरू कर दिया है क्योंकि यह डेटटाइम क्लास के साथ दिनांक/समय का उपयोग करने और उपयोग करने से कहीं अधिक आसान लगता है। मैं क्या करना चाहता हूं यह जांचें कि चुनी गई तिथि ($ चुना_डेट) किसी अन्य तारीख ($ whitelist_date) से अधिक है या नहीं। मैंने नीचे दिए गए कोड में यह कोशिश की है:PHP कार्बन चेक यदि चुना गया दिनांक अन्य दिनांक

$chosen_date = new Carbon($chosen_date); 

    $whitelist_date = Carbon::now('Europe/London'); 
    $whitelist_date->addMinutes(10); 

    echo "Chosen date must be after this date: ".$whitelist_date ."</br>"; 
    echo "Chosen Date: ".$chosen_date ."</br>"; 

    if ($chosen_date->gt($whitelist_date)) { 

     echo "proceed"; 
    } else { 
     echo "dont proceed"; 
    } 

मूल $ चुना_डेट मूल्य POST डेटा से आता है। यहाँ है उत्पादन मैं:

Chosen date must be after this date: 2015-09-22 21:21:57 
Chosen Date: 2015-09-22 21:01:00 
proceed 

जाहिर द्वारा चुनी गई तिथि श्वेत सूची तारीख से बड़ा नहीं है लेकिन अभी भी अगर बयान सही वापस आती है और गूंज के "आगे बढ़ना है।" मैं कोड खत्म हो चुका हूं लेकिन मैं नहीं देख सकता कि मैं कहां गलत हो गया हूं।

+0

क्या $ chosen_date निर्माता में जाने से पहले गूँज है का उपयोग कर? –

+0

यह फ़ॉर्म इनपुट इनपुट इको है, उदाहरण के लिए, '09/22/2015 9:36 अपराह्न' - इस प्रारूप में। – aqq

उत्तर

6

यह हो सकता है ..... समय क्षेत्र, ही नहीं हैं तो यह

$chosen_date = new Carbon($chosen_date, 'Europe/London'); 

$whitelist_date = Carbon::now('Europe/London'); 
$whitelist_date->addMinutes(10); 

आप हमेशा निर्माण कर सकते हैं याद रखें की कोशिश उदाहरण और इसके लिए समय क्षेत्र सेट:

$date = new Carbon(); 
$date->setTimezone('Europe/London'); 

$whitelist_date = $date->now(); 

विभिन्न टाइमज़ोन वाले उपयोगकर्ताओं के लिए डेटा कैसे प्रबंधित किया जा सकता है इस पर कोई सुझाव?

आप विभिन्न समय क्षेत्रों के साथ विभिन्न वस्तुओं को बना सकते हैं। इसे आज़माएं और परिणामों के साथ खेलें।

$london_date = new Carbon($chosen_date_from_london, 'Europe/London'); 
$colombia_date = new Carbon($chosen_date_from_colombia, 'Bogota/America'); 

आप उनकी तुलना मान लीजिए:

$are_different = $london_date->gt($colombia_date)); 
var_dump($are_different); //FALSE 

नहीं, वे अलग नहीं कर रहे हैं, हालांकि वे अलग अलग समय हैं जब आप घड़ी पर और दुनिया के विभिन्न भागों में घूरना, वे ' अभी भी एक ही वर्तमान क्षण में, अभी भी।

ये लीजिए, बस टोकरा विभिन्न वस्तुओं या कार्बन() के उदाहरण हैं, और विभिन्न समय क्षेत्रों सेट $instance->setTimeZone(TimeZone);

+0

बिल्कुल सही! ऐसा लगता है कि यह काम कर रहा है, अब काम कर रहा है। विभिन्न टाइमज़ोन वाले उपयोगकर्ताओं के लिए डेटा कैसे प्रबंधित किया जा सकता है इस पर कोई सुझाव? – aqq

+0

अद्यतन उत्तर। –

+0

धन्यवाद, मैं इसे प्राप्त करूंगा! – aqq

-2

या उपयोग करने का प्रयास के बाद एक:

if ($chosen_date->gte($whitelist_date)) 
+1

इससे कोई फर्क नहीं पड़ता। – aqq

+1

ओपी ने भी अधिक से अधिक या बराबर नहीं पूछा ... –

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