यदि मेरे पास प्रारंभ तिथि है (2009-02-01
कहें) और एक अंतिम तिथि (2010-01-01
कहें), मैं सीमा में सभी तिथियों (महीनों) के माध्यम से जाने के लिए लूप कैसे बना सकता हूं?PHP: किसी भी तिथि सीमा में सभी महीनों के माध्यम से लूप?
उत्तर
$start = $month = strtotime('2009-02-01');
$end = strtotime('2011-01-01');
while($month < $end)
{
echo date('F Y', $month), PHP_EOL;
$month = strtotime("+1 month", $month);
}
मन का प्रयास करें टिप्पणी http://php.net/manual/de/datetime.formats.relative.php
सापेक्ष माह मूल्यों महीनों है कि वे के माध्यम से पारित की लंबाई के आधार पर गणना कर रहे हैं। एक उदाहरण "+2 महीने 2011-11-30" होगा, जो "2012-01-30" उत्पन्न करेगा। यह नवंबर के कारण 30 दिनों की अवधि के कारण है, और दिसंबर में 31 दिनों की लंबाई है, जो कुल 61 दिनों का उत्पादन करती है।
PHP5.3 के रूप में आप http://www.php.net/manual/en/class.dateperiod.php
उदाहरण के DateTime, DateInterval और DatePeriod वर्ग संयोजन का उपयोग कर सकते हैं:
$start = new DateTime('2009-02-01');
$interval = new DateInterval('P1M');
$end = new DateTime('2011-01-01');
$period = new DatePeriod($start, $interval, $end);
foreach ($period as $dt) {
echo $dt->format('F Y') . PHP_EOL;
}
$start = strtotime('2011-09-01');
$end = strtotime('2013-12-01');
while($start < $end)
{
echo date('F Y', $start) . '<br>';
$start = strtotime("+1 month", $start);
}
मेरे पास एक तरीका है जिसके परिणामों में इष्टतम है:
$begin = new DateTime('2014-07-14');
$end = new DateTime('2014-08-01');
$end = $end->modify('+1 month');
$interval = DateInterval::createFromDateString('1 month');
$period = new DatePeriod($begin, $interval, $end);
foreach($period as $dt) {
var_dump($dt->format("m"));
}
@Glavic
की विधि के लिए एक प्लस स्वीकृत उत्तर उचित तरीका नहीं है।
मैंने इस स्निपेट को आजमाया और यह ठीक से काम नहीं करता है। यदि आपकी प्रारंभ तिथि महीने का अंत है और अंतिम तिथि तीसरी महीने की शुरुआत है।
उदाहरण के लिए: 2014-08-31 - 2014-10-01
उम्मीद की जानी चाहिए।
- अगस्त
- सितम्बर
- अक्टूबर
बेहतर समाधान है:
$start = new DateTime('2010-12-02');
$start->modify('first day of this month');
$end = new DateTime('2012-05-06');
$end->modify('first day of next month');
$interval = DateInterval::createFromDateString('1 month');
$period = new DatePeriod($start, $interval, $end);
foreach ($period as $dt) {
echo $dt->format("Y-m") . "<br>\n";
}
मैं स्वीकार किए जाते हैं जवाब की सादगी पसंद है, लेकिन 3s2ng के रूप में, यह हमेशा काम नहीं करता है। तो मैंने इसे इस तरह tweeked:
$start = strtotime('2009-02-01');
$startmoyr = date('Y', $start) . date('m', $start);
$end = strtotime('2013-12-01');
$endmoyr = date('Y', $end) . date('m', $end);
while ($startmoyr <= $endmoyr) {
echo date("F Y", $start) . "<br>";
$start = strtotime("+1month", $start);
$startmoyr = date('Y', $start) . date('m', $start);
}
- 1. कैसंड्रा से तिथि सीमा
- 2. PHP में सभी सर्वर के सत्रों के माध्यम से लूपिंग
- 3. संसाधन प्रबंधन में सभी संसाधनों के माध्यम से लूप - सी #
- 4. रेल पर रूबी में महीनों के माध्यम से लूप कैसे करें
- 5. पीएचपी तिथि सीमा चेक
- 6. तिथि सीमा
- 7. PHP में पीडीओ के माध्यम से मैं एक MySQL क्वेरी के माध्यम से कैसे लूप करूं?
- 8. उपफोल्डर्स के माध्यम से लूप
- 9. एंड्रॉइड व्यू के सभी सबव्यूज़ के माध्यम से लूप?
- 10. जावास्क्रिप्ट में 'हैशमैप' के माध्यम से लूप
- 11. कक्षा के सभी गुणों के माध्यम से कैसे लूप करें?
- 12. सभी नेस्टेड शब्दकोश मानों के माध्यम से लूप?
- 13. एसक्यूएल में वर्तमान तिथि से सप्ताह की तिथि सीमा खोजें?
- 14. रनटाइम पर सभी ऑब्जेक्ट गुणों के माध्यम से लूप
- 15. Django टेम्पलेट्स: किसी ऑब्जेक्ट के सभी उपलब्ध गुणों के माध्यम से लूप और प्रिंट करें?
- 16. पृष्ठ पर सभी उपयोगकर्ता नियंत्रणों के माध्यम से लूप
- 17. किसी भी लूप निर्माण के बिना संग्रह के माध्यम से कैसे जाना है?
- 18. गणना के माध्यम से लूप
- 19. किसी तालिका के अंदर सभी टेक्स्टबॉक्स के माध्यम से लूप करें और मूल्य
- 20. सूची सभी महीनों Oracle SQL
- 21. ग्रोवी में मानचित्र के माध्यम से लूप?
- 22. PHP किसी भी आउटपुट
- 23. वैक्टर के वेक्टर के माध्यम से लूप
- 24. पायथन में किसी छवि के प्रत्येक पिक्सेल के माध्यम से लूप करने का तेज़ तरीका?
- 25. लूप अनुरोध वस्तु कुंजी के माध्यम से
- 26. पाइथन स्क्रिप्ट निर्देशिका में सभी फ़ाइलों के माध्यम से लूप करने के लिए,
- 27. ओरेकल तिथि सीमा
- 28. "चयनित" एनम मूल्यों के माध्यम से लूप?
- 29. पाइथन में कुशल तिथि सीमा ओवरलैप गणना?
- 30. समूह सप्ताहों/महीनों पर स्थित दिनांक सीमा अंतराल द्वारा
मैंने इस स्निपेट की कोशिश की और यह ठीक से काम नहीं करता है। यदि आपकी प्रारंभ तिथि महीने का अंत है और अंतिम तिथि तीसरी महीने की शुरुआत है। उदाहरण के लिए: 2014-08-31 - 2014-10-01 – 3s2ng
@ 3s2ng हाँ, लेकिन यह सापेक्ष समय प्रारूपों के लिए व्यवहार की उम्मीद है। मेरे उत्तर में अपडेट देखें। – Gordon
याप जो यह करेगा। धन्यवाद। – 3s2ng