/ / अगर छुट्टी है - php, mysql, आगे की तारीख को आगे बढ़ाने की अंतिम तिथि की गणना करें

छुट्टियां होने पर दिनांक की तारीख को आगे बढ़ाने की तारीख की गणना करें - php, mysql

मैंने कुछ कोड लिखे हैं जहां मेरी शुरुआत हैतिथि और दिनों की संख्या और उसके बाद एक अंतिम तिथि प्राप्त करें अर्थात प्रारंभ तिथि 18 दिसंबर, अवधि 21 दिन, अंतिम तिथि 8 जनवरी। हालाँकि मैं निश्चित छुट्टियों (25 दिसंबर से 6 जनवरी) से बचने के लिए अंतिम तिथि को आगे बढ़ाना चाहता हूं ताकि अंतिम तिथि 15 जनवरी हो जाए। मेरे द्वारा देखे गए सभी उत्तरों में शामिल हैं कि व्यावसायिक दिनों की गणना कैसे करें और सप्ताहांत निकालें, जिसे मुझे "आवश्यकता नहीं है। मैं सिर्फ एक सरणी में विशिष्ट छुट्टियों को परिभाषित करने में सक्षम होना चाहता हूं, यह देखने के लिए कि क्या छुट्टी की शुरुआत तिथि के भीतर है और अंतिम तिथि और यदि यह दिनों की संख्या के अनुसार अंतिम तिथि को आगे बढ़ाता है।

ओह, फिर तारीख को एक डेटाबेस में डाला जाना चाहिए। धन्यवाद।

उत्तर:

जवाब के लिए 0 № 1

$ अवकाश सरणी के माध्यम से Iterate। यदि कोई छुट्टी दी गई सीमा में है, तो भविष्य में एक दिन अंतिम तिथि को आगे बढ़ाएं:

$startDate = new DateTime("2015-12-18");
$endDate   = new DateTime("2016-01-08");
// $holidays array must be sorted. if not, then sort it first
$holidays = array("2015-12-25","2015-12-26","2016-01-01");

$newEndDate = $endDate;

foreach ($holidays as $holiday) {
$holidayDate = new DateTime($holiday);
if ($startDate <= $holidayDate && $holidayDate <= $newEndDate) {
// there is a holiday in the range
$newEndDate->add(new DateInterval("P1D"));
}
}

echo($newEndDate->format("Y-m-d"));

जवाब के लिए 0 № 2

उन सभी के लिए धन्यवाद जो संभव पोस्ट किए गए हैंसमाधान की। मैंने php पेज पर चयनकर्ता को जोड़कर समस्या का समाधान किया जो अंतिम तिथि तक 7, 14 या 21 दिन जोड़ता है (उपयोगकर्ता इसे 1 सप्ताह, 2 सप्ताह आदि के रूप में देखता है) और इस समस्या को हल किया।