की संख्या गिना जा रहा है मैं कैसे php में दो दिनांकों के बीच शनिवार और रविवार की संख्या की गणना कर सकते हैं?शनिवार और रविवार
वहाँ उस उद्देश्य के लिए किसी भी इनबिल्ट समारोह है?
की संख्या गिना जा रहा है मैं कैसे php में दो दिनांकों के बीच शनिवार और रविवार की संख्या की गणना कर सकते हैं?शनिवार और रविवार
वहाँ उस उद्देश्य के लिए किसी भी इनबिल्ट समारोह है?
वहाँ एक संबंधित सवाल यहाँ पहले से ही है, Calculate business days
आप इस का उपयोग कर सकते हैं घटाना 7 सप्ताह से सप्ताहांत के दिन, या इसी तरह के प्राप्त करने के लिए।
मुझे नहीं लगता कि एक है कि के लिए बनाया है, लेकिन यह काम करना चाहिए:
$startTime = START_TIMESTAMP;
$endTime = END_TIMESTAMP;
$time = $startTime;
$count = 0;
while(date('w', $time) != 0) { // 0 (for Sunday) through 6 (for Saturday)
$time += 86400;
}
while($time < $endTime) {
$count++;
$time += 7 * 86400;
}
क्या StartDate में टाइमस्टैम्प शनिवार – nik
आता है यह भी काम करता है, 'तिथि ('w', $ समय) == 0' तो आप दूसरा जबकि और' $ गिनती ++ 'करने के लिए जाना है, तो , आपके पास कम से कम एक शनिवार है। –
'के बजाय (दिनांक ('डब्ल्यू', $ समय)! = 0) 'आप केवल $ $ = स्ट्रेटोटाइम (" शनिवार ")' या '$ time = स्ट्रेटोटाइम (" रविवार ")' कर सकते हैं। –
<?php
date_default_timezone_set("Europe/Lisbon");
$d1 = new DateTime("2009-06-01"); /* inclusive */
$d2 = new DateTime("2009-07-01"); /* exclusive */
$interval = $d2->diff($d1);
$number_of_days = $interval->format("%d");
$number_of_weekends = $number_of_days/7;
$remainder = $number_of_days % 7;
if ($remainder >=2 && $d1->format("D") == "Sat")
$number_of_weekends++;
elseif ($d1->format("w") + $remainder >= 8)
$number_of_weekends++;
मैं पिछले हालत में एक के बाद चूक गए हों, विभिन्न प्रारंभिक तिथियों के साथ यह जांच करना न भूलें। (यदि आप कोई त्रुटि खोजते हैं तो इस उत्तर को संपादित करने के लिए स्वतंत्र महसूस करें)।
दिन निश्चित रूप से नहीं है कि के लिए समारोह में बनाया गया है, लेकिन आप पाश करने के लिए उपयोग कर सकते हैं strtotime
$start = strtotime('2010-01-01');
$end = strtotime('2010-01-09');
function numWeekdays($start_ts, $end_ts, $day, $include_start_end = false) {
$day = strtolower($day);
$current_ts = $start_ts;
// loop next $day until timestamp past $end_ts
while($current_ts < $end_ts) {
if(($current_ts = strtotime('next '.$day, $current_ts)) < $end_ts) {
$days++;
}
}
// include start/end days
if ($include_start_end) {
if (strtolower(date('l', $start_ts)) == $day) {
$days++;
}
if (strtolower(date('l', $end_ts)) == $day) {
$days++;
}
}
return (int)$days;
}
echo numWeekDays($start, $end, 'saturday', false);
हम सभी को KISS करते हैं (यह सरल रखें बेवकूफ)। इसे इतना जटिल क्यों बनाते हैं?
function countWeekendDays($start, $end)
{
// $start in timestamp
// $end in timestamp
$iter = 24*60*60; // whole day in seconds
$count = 0; // keep a count of Sats & Suns
for($i = $start; $i <= $end; $i=$i+$iter)
{
if(Date('D',$i) == 'Sat' || Date('D',$i) == 'Sun')
{
$count++;
}
}
return $count;
}
मैं एक सरल उपाय है कि काम किया है और अपने ही लिखने का फैसला किया है और इस
$start = date('Y-m-d');
$end = date('Y-m-d', strtotime($start.' +1 year'));
$current = $start;
$count = 0;
while($current != $end){
if(date('l', strtotime($current)) == 'Saturday'){
$count++;
}
$current = date('Y-m-d', strtotime($current.' +1 day'));
};
echo $count;
की [व्यावसायिक दिनों की गणना करें] संभव डुप्लिकेट के साथ आया था (http://stackoverflow.com के लिए कुछ समय के लिए की खोज/प्रश्न/336,127/गणना-व्यवसाय-दिन) –