PHP Academy · पाठ

DateInterval से तारीखों की गणना

DateInterval और modify() का उपयोग करके समय-अवधियाँ जोड़ें और घटाएँ

पाठ 3, कुल 4 में से13 चरण

DateInterval से तारीखों की गणना, CoddyKit पर PHP Academy का एक निःशुल्क पाठ है। यह 4 में से 3वाँ पाठ है। आप नीचे पूरा पाठ निःशुल्क पढ़ सकते हैं—फिर अंतर्निहित कोड संपादक और 24/7 एआई ट्यूटर के साथ ब्राउज़र में इसका व्यावहारिक अभ्यास कर सकते हैं। यह PHP Academy सीखने के मार्ग का हिस्सा है और आपकी प्रगति वेब तथा CoddyKit ऐप पर सिंक होती रहती है। PHP Academy पाठ्यक्रम में कुल 4 पाठ शामिल हैं।

DateInterval का परिचय

DateInterval समय की अवधि—दिन, महीने, घंटे आदि—को दर्शाता है। यह DateTime ऑब्जेक्ट में समय जोड़ने या घटाने का PHP OO तरीका है।

DateInterval बनाना

ISO 8601 अवधि-संकेतन का उपयोग करके DateInterval बनाएँ:

<?php
// P = period, T = time separator
$oneYear  = new DateInterval('P1Y');    // 1 year
$sixMonths = new DateInterval('P6M');   // 6 months
$tenDays  = new DateInterval('P10D');   // 10 days
$twoHours = new DateInterval('PT2H');   // 2 hours (T before time)
$complex  = new DateInterval('P1Y2M3DT4H5M6S');

echo $oneYear->y;    // 1
echo $tenDays->d;    // 10

add() और sub()

DateTime में DateInterval जोड़ें या घटाएँ:

<?php
$dt = new DateTime('2024-01-01');

$dt->add(new DateInterval('P1Y'));   // +1 year
echo $dt->format('Y-m-d');  // 2025-01-01

$dt->sub(new DateInterval('P3M'));   // -3 months
echo $dt->format('Y-m-d');  // 2024-10-01

दो तिथियों के बीच diff()

diff() दो तिथियों के बीच के अंतर को दर्शाने वाला DateInterval लौटाता है:

<?php
$start = new DateTime('2024-01-01');
$end   = new DateTime('2024-06-15');

$diff = $start->diff($end);

echo $diff->y;  // years
echo $diff->m;  // months
echo $diff->d;  // days
echo $diff->h;  // hours
echo $diff->days; // total days: 166

मानव-पठनीय अंतर

प्रदर्शित करने के लिए DateInterval को फ़ॉर्मैट करें:

<?php
$birthdate = new DateTime('1990-05-15');
$today     = new DateTime();
$age       = $birthdate->diff($today);

echo $age->y . ' years, ' . $age->m . ' months, ' . $age->d . ' days';

// Check if date is in the past
if ($diff->invert === 1) {
    echo 'Date was in the past';
}

DateInterval::createFromDateString()

प्राकृतिक भाषा की स्ट्रिंग से DateInterval बनाएँ:

<?php
$interval = DateInterval::createFromDateString('1 year 2 months 3 days');

$dt = new DateTime('2024-01-01');
$dt->add($interval);
echo $dt->format('Y-m-d');  // 2025-03-04

// Other examples:
DateInterval::createFromDateString('next monday');
DateInterval::createFromDateString('6 weeks');

DatePeriod — श्रेणियों पर पुनरावृत्ति

DatePeriod आपको नियमित अंतराल पर किसी तिथि-श्रेणी पर पुनरावृत्ति करने देता है:

<?php
$start    = new DateTime('2024-01-01');
$interval = new DateInterval('P1M');  // monthly
$end      = new DateTime('2024-06-01');

$period = new DatePeriod($start, $interval, $end);

foreach ($period as $date) {
    echo $date->format('Y-m') . PHP_EOL;
}
// 2024-01, 2024-02, 2024-03, 2024-04, 2024-05

साप्ताहिक रिपोर्ट के लिए DatePeriod का उपयोग

साप्ताहिक तिथि-जाँच बिंदु बनाएँ:

<?php
$start    = new DateTime('2024-01-01');
$interval = new DateInterval('P7D');  // weekly
$end      = new DateTime('2024-02-01');

$weeks = new DatePeriod($start, $interval, $end);
foreach ($weeks as $week) {
    echo 'Week of: ' . $week->format('Y-m-d') . PHP_EOL;
}

अंतरालों की तुलना

कुल दिनों में बदलकर दो DateIntervals के परिमाण की तुलना करें:

<?php
$a = new DateTime('2024-01-01');
$b = new DateTime('2024-06-01');
$c = new DateTime('2025-01-01');

$diff1 = $a->diff($b)->days;  // 152
$diff2 = $a->diff($c)->days;  // 366

echo ($diff1 < $diff2) ? 'First interval shorter' : 'First interval longer';
// First interval shorter

कार्यदिवसों की गणना

दो तिथियों के बीच कार्यदिवसों की संख्या की गणना करें:

<?php
function businessDays(DateTime $from, DateTime $to): int {
    $count = 0;
    $cur   = clone $from;
    while ($cur < $to) {
        $dow = (int) $cur->format('N'); // 1=Mon ... 7=Sun
        if ($dow < 6) $count++;
        $cur->modify('+1 day');
    }
    return $count;
}

$from = new DateTime('2024-05-27');
$to   = new DateTime('2024-06-07');
echo businessDays($from, $to) . ' business days';

समाप्ति तिथि का पैटर्न

DateInterval का उपयोग करने वाला सदस्यता या टोकन की समाप्ति का सामान्य पैटर्न:

<?php
function expiresAt(string $duration = 'P30D'): string {
    $dt = new DateTimeImmutable();
    return $dt->add(new DateInterval($duration))->format('Y-m-d H:i:s');
}

echo expiresAt('P30D');   // 30-day trial expiry
echo expiresAt('P1Y');    // 1-year subscription expiry
echo expiresAt('PT1H');   // 1-hour token expiry

त्वरित जाँच

$dateA->diff($dateB)->days क्या लौटाता है?

पुनरावृत्ति: DateInterval

मुख्य बिंदु:

  • new DateInterval('P1Y2M3DT4H') — ISO 8601 अवधि
  • add()/sub() से DateTime में बदलाव करें
  • diff() दो तिथियों के बीच DateInterval लौटाता है
  • DatePeriod किसी तिथि-श्रेणी पर पुनरावृत्ति करता है
  • diff() से कुल दिनों की संख्या के लिए ->days का उपयोग करें
  • यह जानने के लिए ->invert जाँचें कि अंतराल ऋणात्मक है या नहीं
शुरुआत निःशुल्क

एआई शिक्षक के साथ PHP सीखें — निःशुल्क

अपने ब्राउज़र में वास्तविक कोड लिखें और चलाएँ, चौबीसों घंटे एआई शिक्षक से तुरंत सहायता पाएँ, और वेब या ऐप पर वहीं से शुरू करें जहाँ आपने छोड़ा था।

पाठ्यक्रम
49
पाठ
195

अक्सर पूछे जाने वाले प्रश्न

क्या “DateInterval से तारीखों की गणना” पाठ निःशुल्क है?

हाँ—“DateInterval से तारीखों की गणना” का पूरा पाठ यहाँ वेब पर निःशुल्क पढ़ा जा सकता है। इंटरैक्टिव अभ्यास (अंतर्निहित कोड संपादक और 24/7 एआई ट्यूटर) करने और PHP Academy पाठ्यक्रम का बाकी हिस्सा अनलॉक करने के लिए CoddyKit PRO लें। PHP Academy पाठ्यक्रम में कुल 4 पाठ शामिल हैं।

“DateInterval से तारीखों की गणना” में मैं क्या सीखूँगा?

DateInterval और modify() का उपयोग करके समय-अवधियाँ जोड़ें और घटाएँ आप ब्राउज़र में सीधे चलाए जाने वाले व्यावहारिक कोड के साथ PHP Academy का अभ्यास करते हैं, और पाठ पूरा करते समय 24/7 एआई ट्यूटर आपके प्रश्नों के उत्तर देता है।

क्या PHP Academy शुरू करने के लिए मुझे किसी अनुभव की आवश्यकता है?

पहले के अनुभव की आवश्यकता नहीं है। CoddyKit पर PHP Academy शुरुआती से लेकर उन्नत शिक्षार्थियों तक सभी के लिए व्यवस्थित किया गया है, इसलिए आप यहीं से या शुरुआत से सीखना शुरू कर सकते हैं और अपनी गति से आगे बढ़ सकते हैं। यह 4 में से 3वाँ पाठ है।

“DateInterval से तारीखों की गणना” पाठ पूरा करने में कितना समय लगता है?

CoddyKit का अधिकांश पाठ लगभग 5–10 मिनट में पूरा हो जाता है। हर पाठ छोटा और संवादात्मक है, इसलिए आप लगातार प्रगति करते हैं और वेब या ऐप पर वहीं से सीखना जारी रख सकते हैं जहाँ आपने छोड़ा था।

क्या मैं इस PHP Academy पाठ में कोड लिख और चला सकता हूँ?

हाँ। हर PHP Academy पाठ में एक अंतर्निर्मित कोड संपादक शामिल है, जिससे आप सीधे अपने ब्राउज़र में वास्तविक कोड लिख और चला सकते हैं और तुरंत एआई प्रतिक्रिया पा सकते हैं—स्थानीय सेटअप की आवश्यकता नहीं है।

इस पाठ्यक्रम के सभी पाठ

  1. Unix टाइमस्टैम्प और date()
  2. DateTime क्लास
  3. DateInterval से तारीखों की गणना
  4. PHP में समय क्षेत्र
← PHP Academy पर वापस जाएँ