BG Development


  Reply to this topicStart new topicStart Poll

> Брой месеци
dgr
Публикувано на: 30-10-2017, 08:47
Quote Post



Име:
Група: Потребител
Ранг: Редовен член

Мнения: 348
Регистриран на: 06.03.08



Има ли PHP-функция която да връща броя на месеците между две дати?
PMEmail Poster
Top
aquilax
Публикувано на: 30-10-2017, 08:56
Quote Post



Име:
Група: Потребител
Ранг: Посетител

Мнения: 78
Регистриран на: 20.05.04



Виж DateTime::diff, което връща DateInterval. Примерно тук: http://php.net/manual/en/class.dateinterval.php#108970


--------------------
PMUsers WebsiteICQ
Top
purjola
Публикувано на: 31-10-2017, 15:02
Quote Post



Име:
Група: Потребител
Ранг: Почетен член

Мнения: 1563
Регистриран на: 18.10.11



Има
PMEmail Poster
Top
dgr
Публикувано на: 01-11-2017, 09:53
Quote Post



Име:
Група: Потребител
Ранг: Редовен член

Мнения: 348
Регистриран на: 06.03.08



Щом има, ако може, дай пример!
PMEmail Poster
Top
bleit
Публикувано на: 01-11-2017, 10:39
Quote Post



Име:
Група: Потребител
Ранг: Редовен член

Мнения: 434
Регистриран на: 21.01.06



Виж по-горе, има пример, $diff->m ще ти върне броя месеци.


--------------------
"Everybody is identical in their secret unspoken belief that way deep down they are different from everyone else."
PMEmail Poster
Top
dgr
Публикувано на: 02-11-2017, 11:33
Quote Post



Име:
Група: Потребител
Ранг: Редовен член

Мнения: 348
Регистриран на: 06.03.08



CODE

        function dateDifference($startDate, $endDate)
       {
      
          $startDate = strtotime($startDate);
           $endDate = strtotime($endDate);
           if ($startDate === false || $startDate < 0 || $endDate === false || $endDate < 0 || $startDate > $endDate)
               return false;
               
           $years = date('Y', $endDate) - date('Y', $startDate);
           
           $endMonth = date('m', $endDate);
           $startMonth = date('m', $startDate);
           
           // Calculate months
          $months = $endMonth - $startMonth;
           if ($months <= 0)  {
               $months += 12;
               $years--;
           }
      
           if ($years < 0)
               return false;
           
           // Calculate the days
                         $offsets = array();
                       if ($years > 0)
                           $offsets[] = $years . (($years == 1) ? ' year' : ' years');
                       if ($months > 0)
                           $offsets[] = $months . (($months == 1) ? ' month' : ' months');
                       $offsets = count($offsets) > 0 ? '+' . implode(' ', $offsets) : 'now';

                 $days = $endDate - strtotime($offsets, $startDate);
                       $days = date('z', $days);    
                   
           return array($years, $months, $days);
            
       }

 $ymd=  dateDifference($date_tab,$date_sega );
            
echo $ymd["1"];
echo '<br>';
echo $ymd["2"];
 echo '<br>';
 echo $ymd["3"];    


Намерих горната функция, но тя ми връща само броя на месеците и то само за една година.
Дните и годините не ги връща.
Някой може ли да я направи така, че да връща всичко ($years, $months, $days) за по-голям период.
PMEmail Poster
Top
nicky75
Публикувано на: 02-11-2017, 11:40
Quote Post



Име:
Група: Потребител
Ранг: Новопостъпил

Мнения: 1
Регистриран на: 12.03.15



PMEmail Poster
Top
1 потребители преглеждат тази тема в момента (1 гости, 0 анонимни потребители)
Потребители, преглеждащи темата в момента:

Topic Options Reply to this topicStart new topicStart Poll

 


Copyright © 2003-2015 | BG Development | All Rights Reserved
RSS 2.0