2013-06-26 17 views
9

तारीख वस्तु के इस प्रकार दिया की तुलना में कम date("m/d/Y", strtotime($numerical." ".$day." of ".date("F")))php तारीख एक और तारीख

जहां यह उदाहरण

कैसे कर सकते हैं के लिए, एक dd/mm/yyyy दिन "अगस्त के पहले सोमवार" है कि दे सकता है मैं तय करता हूं कि यह तिथि आज की तारीख से कम, उससे कम या बराबर है या नहीं?

मैं एक now() विधि है कि इस प्रारूप में काम करता है और तारीख वस्तुओं के बीच तुलना की जा सकती

मैंने कोशिश नहीं की है तिथि() < तिथि(), अभी तक की जरूरत है। लेकिन मुझे नहीं लगता कि

काम करेंगे किसी भी अंतर्दृष्टि की सराहना की

+1

आपको नहीं लगता कि यह काम करेगा? कोशिश क्यों नहीं करें? –

+0

@DanyCaissy वह दिनांक() के आउटपुट की तुलना करना चाहता है, पूर्णांक टाइमस्टैम्प नहीं ... – bwoebi

उत्तर

17

टाइम स्टांप की तुलना करें:

if (strtotime($numerical." ".$day." of ".date("F")) < time()) { 
    // older 
} else { 
    // newer 
} 

यह संभव है के रूप में strtotime() 1970/01/01 और time() भी के बाद से सेकंड देता है। और PHP में आप आसानी से पूर्णांक की तुलना कर सकते हैं ...

20

मैंने पहले आपके प्रश्न को गलत समझा। आप अपनी तुलना की तुलना में ऑब्जेक्ट दिनांक का उपयोग नहीं कर रहे हैं, बल्कि एक तिथि का स्ट्रिंग प्रस्तुति (date द्वारा निर्मित) का उपयोग नहीं कर रहे हैं।

यह वर्तमान समय के लिए एक तिथि के लगभग किसी भी स्ट्रिंग प्रतिनिधित्व तुलना करने के लिए आसान है:

$now = time(); 
$date = '2015/03/12'; #could be (almost) any string date 

if (strtotime($date) > $now) { 
    #$date occurs in the future 
} else { 
    #$date occurs now or in the past 
} 

वर्तमान दिन के लिए एक तिथि स्ट्रिंग की तुलना केवल एक छोटे से अधिक जटिल है।

$today_start = strtotime('today'); 
$today_end = strtotime('tomorrow'); 
$date = '2015/03/12'; #could be (almost) any string date 

$date_timestamp = strtotime($date); 

if ($date_timestamp >= $today_end) { 
    #$date occurs after today 
} elseif ($date_timestamp < $today_start) { 
    #$date occurs before today 
} else { 
    #$date occurs today 
} 

बजाय time का उपयोग वर्तमान समय दूसरे के लिए नीचे पाने के लिए, आप दो midnights कि आज की तारीख bookend के लिए टाइम स्टांप गणना: यहाँ एक तरह से यह करने के लिए है। फिर आप उन लोगों के साथ तुलना करते हैं।

ऐसा करने के अधिक चालाक तरीके हैं (जैसे YYYY/MM/DD दिनांक और आज के प्रस्तुतिकरण की तुलना), लेकिन यह उदाहरण पहले पर अच्छी तरह से बनाता है।

+0

thx :) अधिक लचीला और स्पष्ट उत्तर –

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