PHP में मिनटों में समय अंतर कैसे प्राप्त करें




date time (8)

PHP में दो दिनांक-समय के बीच मिनट अंतर की गणना कैसे करें?


इस प्रकार मैंने php> 5.2 में "xx times ago" प्रदर्शित किया है .. DateTime ऑब्जेक्ट पर यहां अधिक जानकारी है

//Usage:
$pubDate = $row['rssfeed']['pubDates']; // e.g. this could be like 'Sun, 10 Nov 2013 14:26:00 GMT'
$diff = ago($pubDate);    // output: 23 hrs ago

// Return the value of time different in "xx times ago" format
function ago($timestamp)
{

$today = new DateTime(date('y-m-d h:m:s'));
//$thatDay = new DateTime('Sun, 10 Nov 2013 14:26:00 GMT');
$thatDay = new DateTime($timestamp);
$dt = $today->diff($thatDay);

if ($dt->y > 0)
{
    $number = $dt->y;
    $unit = "year";
}
else if ($dt->m > 0)
{
    $number = $dt->m;
    $unit = "month";
}   
else if ($dt->d > 0)
{
    $number = $dt->d;
   $unit = "day";
}
else if ($dt->h > 0)
{
    $number = $dt->h;
    $unit = "hour";
}
else if ($dt->i > 0)
{
    $number = $dt->i;
    $unit = "minute";
}
else if ($dt->s > 0)
{
    $number = $dt->s;
    $unit = "second";
}

$unit .= $number  > 1 ? "s" : "";

$ret = $number." ".$unit." "."ago";
return $ret;
}

ऊपर दिए गए उत्तर PHP के पुराने संस्करणों के लिए हैं। किसी भी तारीख की गणना करने के लिए डेटटाइम क्लास का उपयोग करें, अब PHP 5.3 मानक है। उदाहरण के लिए।

$start_date = new DateTime('2007-09-01 04:10:58');
$since_start = $start_date->diff(new DateTime('2012-09-11 10:25:00'));
echo $since_start->days.' days total<br>';
echo $since_start->y.' years<br>';
echo $since_start->m.' months<br>';
echo $since_start->d.' days<br>';
echo $since_start->h.' hours<br>';
echo $since_start->i.' minutes<br>';
echo $since_start->s.' seconds<br>';

$ since_start एक DateInterval वस्तु है। ध्यान दें कि दिन की संपत्ति उपलब्ध है (क्योंकि हमने दिनांक अंतराल वस्तु उत्पन्न करने के लिए डेटटाइम कक्षा के diff विधि का उपयोग किया था)।

उपरोक्त कोड आउटपुट होगा:

कुल 1837 दिन
5 वर्ष
0 महीने
दस दिन
6 घंटे
14 मिनट
2 सेकेंड

मिनटों की कुल संख्या प्राप्त करने के लिए:

$minutes = $since_start->days * 24 * 60;
$minutes += $since_start->h * 60;
$minutes += $since_start->i;
echo $minutes.' minutes';

यह आउटपुट होगा:

2645654 मिनट

दो तिथियों के बीच पारित मिनटों की वास्तविक संख्या कौन सा है। डेटटाइम क्लास डेलाइट सेविंग (टाइमज़ोन के आधार पर) को उस खाते में ले जाएगा जहां "पुराना तरीका" नहीं होगा। दिनांक और समय http://www.php.net/manual/en/book.datetime.php बारे में मैन्युअल पढ़ें


टाइमज़ोन के साथ एक और तरीका।

$start_date = new DateTime("2013-12-24 06:00:00",new DateTimeZone('Pacific/Nauru'));
$end_date = new DateTime("2013-12-24 06:45:00", new DateTimeZone('Pacific/Nauru'));
$interval = $start_date->diff($end_date);
$hours   = $interval->format('%h'); 
$minutes = $interval->format('%i');
echo  'Diff. in minutes is: '.($hours * 60 + $minutes);

मुझे लगता है कि यह आपकी मदद करेगा

function calculate_time_span($date){
    $seconds  = strtotime(date('Y-m-d H:i:s')) - strtotime($date);

        $months = floor($seconds / (3600*24*30));
        $day = floor($seconds / (3600*24));
        $hours = floor($seconds / 3600);
        $mins = floor(($seconds - ($hours*3600)) / 60);
        $secs = floor($seconds % 60);

        if($seconds < 60)
            $time = $secs." seconds ago";
        else if($seconds < 60*60 )
            $time = $mins." min ago";
        else if($seconds < 24*60*60)
            $time = $hours." hours ago";
        else if($seconds < 24*60*60)
            $time = $day." day ago";
        else
            $time = $months." month ago";

        return $time;
}

यह मेरे कार्यक्रमों पर काम करता है, मैं date_diff का उपयोग कर रहा date_diff , आप here date_diff मैन्युअल देख सकते here

$start = date_create('2015-01-26 12:01:00');
$end = date_create('2015-01-26 13:15:00');
$diff=date_diff($end,$start);
print_r($diff);

आपको परिणाम मिलते हैं जो आप चाहते हैं।


यहां जवाब है:

$to_time = strtotime("2008-12-13 10:42:00");
$from_time = strtotime("2008-12-13 10:21:00");
echo round(abs($to_time - $from_time) / 60,2). " minute";

सबसे अधिक भविष्य में सबसे ज्यादा घटाएं और 60 तक विभाजित करें।

टाइम्स यूनिक्स प्रारूप में किए जाते हैं, इसलिए वे January 1, 1970, 00:00:00 GMT से सेकंड की संख्या दिखाते हुए केवल एक बड़ी संख्या हैं


<?php
$date1 = time();
sleep(2000);
$date2 = time();
$mins = ($date2 - $date1) / 60;
echo $mins;
?>




minute