2012-06-13 14 views
5

का उपयोग कर php में सापेक्ष तिथियां कंप्यूटिंग वर्तमान सप्ताह के लिए मैं निर्दिष्ट सप्ताहांत (उदा। "सोम") की पूरी तिथि वापस करने के लिए एक विश्वसनीय तरीका ढूंढ रहा हूं।strtotime()

आज के बाद से बुधवार, 13 जून, 2012 है, मैं <?php echo date("Y-m-d", strtotime('Mon this week')); ?> उम्मीद 2012-06-11 में परिणाम की, लेकिन इसके बजाय php रिटर्न 2012-06-18 है जैसे कि यह इस सप्ताह व्याख्या अर्थ अगले सप्ताह के रूप में। यह व्यवहार क्यों और मुझे क्या करना चाहिए?

धन्यवाद।

--Jeff

+3

आप "इस सप्ताह" को कैसे परिभाषित करते हैं? रविवार सोमवार हालांकि? शनिवार से शनिवार? शनिवार से शुक्रवार? या कुछ और पूरी तरह से? –

+0

दिलचस्प। मैंने इसे PHP5.4 के तहत चलाया, और 'इस सप्ताह सोम' के लिए 11 वें और 'इस सोम' के लिए 18 वां स्थान प्राप्त किया। आप किस संस्करण PHP चल रहे हैं? – dnagirl

+0

PHP संस्करण 5.2 – jalperin

उत्तर

5

date('Y-m-d', strtotime('last Monday', strtotime('Sunday')));

यह सोमवार से अगले रविवार तक पिछले के लिए खोज करता है।

0

मुझे लगता है कि यह आपकी समस्या के लिए समाधान है:

$monday_date = date("Y-m-d", mktime(0,0,0, date("m"), date("j")-(date("w")+1), date("Y"))); 
2

प्रलेखन php relative date formats के अनुसार।

फिर Monday this week पहले next Monday पर अग्रिम होगा और फिर this week के सापेक्ष पाठ को संसाधित करेगा।

दिन का नाम: इस नाम के अगले दिन तक चलता है जब तक कि यह वर्तमान दिन न हो तो यह अग्रिम नहीं होगा। दूसरे शब्दों में यदि वर्तमान दिनांक 11 जून था, तो strtotime('Monday this week') 11 जून को वापस आ जाएगा, जबकि यदि वर्तमान दिनांक 13 जून था तो strtotime('Monday this week') जून 1 9 लौटा होगा।

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