क्या कार्य दिवस (सोमवार से शुक्रवार) को एक तारीख में जोड़ने के लिए strtotime
का उपयोग करने का कोई तरीका है? या कुछ अन्य विधि? मुझे क्या करना चाहते हैं:PHP में कार्य दिवस (सोम-शुक्र)
date ('Y-m-j' , strtotime ('+3 working days'))
क्या कार्य दिवस (सोमवार से शुक्रवार) को एक तारीख में जोड़ने के लिए strtotime
का उपयोग करने का कोई तरीका है? या कुछ अन्य विधि? मुझे क्या करना चाहते हैं:PHP में कार्य दिवस (सोम-शुक्र)
date ('Y-m-j' , strtotime ('+3 working days'))
आप काम करने के दिन के लिए सीमित कर रहे हैं, तो स्ट्रिंग काम करने के दिन का उपयोग करें।
echo date ('Y-m-j' , strtotime ('3 weekdays'));
यह, 3 काम करने के दिन से आगे आप कूद चाहिए ताकि अगर यह गुरुवार है यह अतिरिक्त सप्ताह के अंत में समय जोड़ देगा।
स्रोत: http://www.php.net/manual/en/datetime.formats.relative.php
नहीं * रास्ता। * यह काम करता है? क्या कुछ भी 'स्ट्रेटोटाइम()' नहीं कर सकता है? –
@ पेक्का मैं कभी-कभी "10 महीने पहले महीने के पहले दिन" और "इस महीने के पहले दिन" जैसी चीज़ों की अक्षमता से खराब हो गया हूं। – Yahel
हालांकि यह छोटी गाड़ी काम करता है: 'इको डेट (' वाई-एम-डी ', स्ट्रेटोटाइम (' 2011-03-27 + 5 सप्ताह के दिन ')); 1 अप्रैल को अपेक्षित, 3 अप्रैल को मिला। – zerkms
मैं जब काम करने के दिन की एक बड़ी राशि की आवश्यकता होगी, इस गाड़ी मिल गया है। मैं वर्तमान माह के पहले के बाद एक्स दिनों की व्यावसायिक दिनों की तलाश में था।
5 व्यावसायिक दिनों को जोड़ने के बाद पहली बार शानदार लग रहा था (जैसा कि @zerkms मिला है)।
यह मेरे लिए और अधिक सटीक साबित हुआ है।
function _getBusinessDayOfMonth($days) {
$time = strtotime(date("m/1/Y 00:00")); //finding # of business days after 1st of the month
$i = 0; //start with zero
while ($i < $days) { //loop through until reached the amount of weekdays
$time = strtotime("+1 day", $time); //Increase day by 1
if (date("N", $time) < 6) { //test if M-F
$i++; //Increase by 1
}
}
echo date("m/d/Y", $time);
}
मैं एक समारोह आसानी से विकसित किया जा सकता है कि आप बस सप्ताह की वर्तमान दिन निर्यात कर सकते हैं कोई और आप दो और 5 के आधुनिक जोड़ने आप आसानी से काम करने के दिन दे देंगे कर सकते हैं लगता है।
function increaseWorkDay($workDayToProcess, $dayToAdd){
if($workDayToProcess >= 4 && $workDayToProcess <= 6){
$workDayToProcess= 4;
}
$workDayToProcess+= $dayToAdd;
return $workDayToProcess % 5;
}
और आप एक सरणी का उपयोग करके सप्ताह के नाम का निर्यात कर सकते हैं, इस विधि का वैकल्पिक रूप से उपयोग किया जा सकता है।
मैं इसे रिकर्सिवली करते हैं, के लिए मुझे
function add_work_days($date, $day){
if($day == 0)
return $date;
$date->add(new DateInterval('P1D'));
if(!in_array($date->format('N'), array('6', '7')))
$day--;
return add_work_days($date, $day);
}
$date = add_work_days(new DateTime(), 3);
echo $date->format('d/m/Y');
काम पीएचपी < के पुराने संस्करणों 5,3
function AddWorkingDays($startDate, $adddays)
{
$retdate = $startDate;
$sign = "+";
if($adddays < 0){
$adddays = $adddays*-1;
$sign = "-";
}
while ($adddays > 0) {
$retdate = date ('Y-m-d' , strtotime ("$retdate {$sign}1 day"));
$what_day = date("N", strtotime($retdate));
if ($what_day != 6 && $what_day != 7) // 6 and 7 are weekend
$adddays--;
};
return $retdate;
}
कुछ मध्य पूर्वी देशों में एक सप्ताह के अंत में एक काम सप्ताह गुरुवार को रविवार है के लिए। क्या आपने उनके बारे में सोचा है: ओ –
यह काम करने के लिए है कि भविष्य में भुगतान के लिए समय सीमा स्थानीय घटना के लिए कितनी दिन है, इसलिए नहीं :-) – fredley
आपको पवित्र दिनों के बारे में भी सोचना होगा। – yvoyer