2013-02-26 26 views
15

मैं निर्धारित करने के लिए एक तिथि या भविष्य में है नहीं कोशिश कर रहा हूँ का उपयोग करने में है, DateTime वस्तुओं का उपयोग कर, लेकिन यह हमेशा वापस सकारात्मक आता है:पीएचपी - निर्धारित करें कि दिनांक भविष्य दिनांक समय वस्तु

$opening_date = new DateTime($current_store['openingdate']); 
$current_date = new DateTime(); 
$diff = $opening_date->diff($current_date); 
echo $diff->format('%R'); // + 

if($diff->format('%R') == '+' && $current_store['openingdate'] != '0000-00-00' && $current_store['openingdate'] !== NULL) { 
    echo '<img id="openingsoon" src="/img/misc/openingsoon.jpg" alt="OPENING SOON" />'; 
} 

समस्या यह हमेशा सकारात्मक है, तो छवि दिखाता है जब यह नहीं होना चाहिए है।

मैं कुछ बेवकूफ कर रही होगी, लेकिन यह क्या है, यह मेरे पागल गाड़ी चला रहा है!

उत्तर

49

यह तुलना में आसान आपको लगता है। आप DateTime वस्तुओं के साथ तुलना कर सकते हैं:

$opening_date = new DateTime($current_store['openingdate']); 
$current_date = new DateTime(); 

if ($opening_date > $current_date) 
{ 
    // not open yet! 
} 
9

आप इस के लिए एक DateTime वस्तु की जरूरत नहीं है। इस प्रयास करें:

$now = time(); 
if(strtotime($current_store['openingdate']) > $now) { 
    // then it is in the future 
} 
+5

आप दिनांक समय का उपयोग बेहतर *, किसी भी अन्य कारणों की वजह से नहीं वस्तुओं क्योंकि यह * है। 'Strtotime()' के सीमा कुछ हद तक सीमित है, लेकिन दिनांक समय एक अधिक व्यापक रेंज के साथ काम कर सकते हैं। –

4

आप सामान्य तुलना ऑपरेटरों के साथ दिनांक समय वस्तुओं की तुलना कर सकते हैं:

$date1 = new DateTime("");             
    $date2 = new DateTime("tomorrow"); 

    if ($date2 > $date1) { 
     echo '$date2 is in the future!'; 
    } 

अपने वर्तमान कोड के लिए, इस प्रयास करें:

$opening_date = new DateTime($current_store['openingdate']); 
$current_date = new DateTime(); 

if ($opening_date > $current_date) { 
    echo '<img id="openingsoon" src="/img/misc/openingsoon.jpg" alt="OPENING SOON" />'; 
} 
संबंधित मुद्दे