2013-04-17 8 views
6

मुझे php में सप्ताह संख्या प्राप्त करने की आवश्यकता है जहां सप्ताह से रविवार की गणना की जानी चाहिए। डिफ़ॉल्ट रूप से सोमवार से। शुभ दिन को शुरुआती दिन के रूप में देखते हुए सप्ताह संख्या प्राप्त करने का तरीका खोजने के लिए कृपया मेरी मदद करें।रविवार को शुरू होने वाले सप्ताह कैसे प्राप्त करें?

php मैनुअल वर्ष के आईएसओ 8601 सप्ताह के नंबर, सोमवार से शुरू होने सप्ताह (पीएचपी 4.1.0 में जोड़ा)

में लेकिन मैं साल, रविवार को शुरू सप्ताह के सप्ताह के नंबर पाने के लिए की जरूरत है।

धन्यवाद

+0

यह लिंक आपकी मदद कर सकता है: http://stackoverflow.com/questions/5376484/issue-with-getting-week-starting-from-sunday –

+8

सोमवार से शुरू होने वाला सप्ताह का नंबर प्राप्त करें। फिर, यदि प्रश्न की तारीख रविवार है, सप्ताह की संख्या में कमी। 0 से कम न जाने के लिए सावधान रहें – Jon

+0

आप "वृद्धि" कहना चाहते थे – dVaffection

उत्तर

4

इस प्रयास करें:

$week = intval(date('W')); 

if (date('w') == 0) {   // 0 = Sunday 
    $week++; 
} 

echo $week; 

सुनिश्चित नहीं हैं कि अगर तर्क सही है, हालांकि है,

+0

यह काम किया ... Thanx बहुत .. !! – cyberrspiritt

+0

जब यह वर्ष – hounded

1

आप strftime

$week_start = new DateTime(); 
$week = strftime("%U"); //this gets you the week number starting Sunday 
$week_start->setISODate(2012,$week,0); //return the first day of the week with offset 0 
echo $week_start -> format('d-M-Y'); //and just prints with formatting 
2

साथ प्रयास करना चाहिए यह एक प्रयास करें। रविवार को दिन -1 दिन का होना चाहिए।

$date = "2015-05-25"; 
echo date("W", strtotime("-1 day",strtotime($date))); 
3

silkfire जवाब पर विस्तार और यह वर्षों

if($date->format('w') == 0){ 
     if(date('W',strtotime($date->format('Y')."-12-31"))==52 and $date->format('W') == 52){ 
      $week = 1; 
     } 
     elseif(date('W',strtotime($date->format('Y')."-12-31"))==53 and $date->format('W') == 53){ 
      $week = 1; 
     } 
     else{ 
      $week++; 
     } 
    } 
+0

लपेटता है तो मेरा उत्तर जांचें यह 2015-12-31 पर काम नहीं करता है। यदि सप्ताह रविवार को शुरू होता है, तो यह 52 होना चाहिए जबकि आपका फ़ंक्शन 53 लौटाता है। –

2

चारों ओर लपेटकर पहला समाधान जनवरी 01 पर सही नहीं है के लिए अनुमति देने के लिए, 2017 इस प्रयास करें:

$ तिथि = दिनांक ('Ym-डी');
इको स्ट्रैटाइम ("% यू", स्ट्रेटोटाइम ($ तारीख));

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