2015-04-17 8 views
9

आज शुक्रवार, 17 अप्रैल, 2015 है। मेरे ऐप में, यह स्वचालित रूप से प्रत्येक असाइनमेंट के लिए "देय तिथि" उत्पन्न करता है। यह "5 व्यावसायिक दिनों" पर सेट है। इसे पूरा करने के लिए, हम उपयोग करते हैं:PHP strtotime सप्ताहांत

date('m/d/Y', strtotime("+5 weekdays")); 

हालांकि, आज, यह आउटपुट "04/26/2015"। क्यूं कर? यह एक रविवार है। यह मुझे 24 वें क्यों नहीं देता, जो मैं चाहता हूं?

डेमो: http://codepad.org/2wvnypOC

पी.एस. मेरे मालिक से बात करने के बाद, हमने strtotime("+5 days") पर स्विच किया, लेकिन मैं अभी भी उत्सुक हूं कि "weekdays" के साथ क्या गलत था।

+1

PHP संस्करण? Bugs.php.net पर देखा? "रविवार" वह हिस्सा है जो पुरानी बग का सुझाव देता है .... https: //bugs.php.net/bug.php? Id = 61642 – ficuscr

+1

PHP संस्करण 5.4.38। मेरा मूल विचार एक टाइमज़ोन मुद्दा था। –

+7

[बग # 61642 \t संशोधित करें ("+ 5 सप्ताह के दिन") रविवार को लौटाते हैं] (https://bugs.php.net/bug.php?id=61642) – salathe

उत्तर

4

यह bug है।

इसे> = 5.5.0 में ठीक किया गया है।

तो आपको इसके आसपास काम करने या अपने PHP संस्करण को अपग्रेड करने की आवश्यकता होगी।

<?php 
$today = strtotime('2015-04-17 00:00:00'); 

echo date('m/d/Y', strtotime("+5 weekdays", $today)); 
echo "\n"; 
echo phpversion(); 
?> 

Working in 5.6*

+0

दिलचस्प। [जाहिर है] (http://3v4l.org/Kjopg) यह PHP 5.5.0 में तय किया गया था। – amphetamachine

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