Strict Standards: Non-static method Advanced_Permalinks::get() should not be called statically in /blog/wp-content/plugins/advanced-permalinks/advanced-permalinks.php on line 825

Strict Standards: call_user_func_array() expects parameter 1 to be a valid callback, non-static method GoogleSitemapGeneratorLoader::Enable() should not be called statically in /blog/wp-includes/plugin.php on line 123

Warning: call_user_func_array() expects parameter 2 to be array, null given in /blog/wp-includes/plugin.php on line 123
[PHP] Jak stworzyć prostą funkcję do obliczania różnicy pomiędzy datami? » Porady PHP » egrafik.pl
BAZA WIEDZY
KURSY
Bazy danych w PHP
Kurs AdvancedAJAX
Kurs ASP
Kurs ASP.NET
Kurs C++
Kurs CSS
Kurs HTML
Kurs HTML drugi
Kurs JavaScript
Kurs MySQL
Kurs PHP
Kurs RSS
Kurs XHTML
Obiekty DOM
MANUALE
CSS1 - W3C
DOM - w budowie
PHP 2005
PHP 2006
Wyrażenia regularne
SHOUTBOX
STAT
Online: 12 | UU: 553

Strict Standards: Resource ID#115 used as offset, casting to integer (115) in /forum2/db/mysql4.php on line 223

Strict Standards: Resource ID#115 used as offset, casting to integer (115) in /forum2/db/mysql4.php on line 224
[PHP] Jak stworzyć prostą funkcję do obliczania różnicy pomiędzy datami?
Porady PHP | 17 luty 2009 | Wizyt: 115240

Strict Standards: Only variables should be assigned by reference in /blog/wp-includes/post.php on line 114

Strict Standards: Only variables should be assigned by reference in /blog/wp-includes/post.php on line 114

Strict Standards: Only variables should be assigned by reference in /blog/wp-includes/post.php on line 114

Strict Standards: Only variables should be assigned by reference in /blog/wp-includes/post.php on line 114

Strict Standards: Only variables should be assigned by reference in /blog/wp-includes/post.php on line 114

Strict Standards: Only variables should be assigned by reference in /blog/wp-includes/post.php on line 114

Strict Standards: Only variables should be assigned by reference in /blog/wp-includes/post.php on line 114

Strict Standards: Only variables should be assigned by reference in /blog/wp-includes/post.php on line 114

Deprecated: Function eregi() is deprecated in /blog/wp-content/plugins/tpbc.php on line 96

W tym artykule zajmiemy się stworzeniem drobnej lecz bardzo przydatnej funkcji umożliwiającej obliczanie różnicy pomiędzy datami.

Różnica ta może być wyrażona w różnych jednostkach czasowych. Np. możemy obliczyć różnicę w dniach, godzinach, minutach itd.

Zapis funkcji:

Kod: php

<?php
// funkcja obliczajaca roznice dat
function roznica_data($data_poczatek, $date_koniec, $jednostka_czasu="sekund")
{
 $tablica = array(minut=>60, godzin=>3600, dni=>86400, sekund=>1);
 return "Roznica miedzy data: ".$data_poczatek." a data ".$date_koniec." wynosi ".round(((strtotime($date_koniec) - strtotime($data_poczatek)) / $tablica[$jednostka_czasu]))." ".$jednostka_czasu;
}
?>

Powyższa funkcja pobiera jako argumenty datę początkową, datę końcową oraz jednostkę czasu, wg której ma być obliczona różnica pomiędzy datami. Jeżeli trzeci argument nie zostanie podany, różnica podana zostanie w sekundach. Zmienna $tablica przypisuje poszczególnym wariantom, z których każdy może być użyty jako 3 argument naszej funkcji, odpowiednie liczby, odpowiadające liczbie sekund w danej jednostce czasu.

Aby dokładniej zrozumieć działanie funkcji, należy przyjrzeć się działaniu zapisu strtotime(). Zamienia on datę w formacie rrrr-mm-dd na formę unixową, określającą liczbę sekund, które minęły od 1 stycznia 1970 roku. W przykładzie obie daty, zarówno początkowa, jak i końcowa, zamieniana jest na formę unixową. Zatem różnica pomiędzy datą końcową w formacie unixowym, a datą początkową również w formacie unixowym, wyznacza różnicę pomiędzy tymi datami w sekundach. Aby różnicę podać w innej jednostce czasu, należy różnicę w sekundach podzielić przez odpowiednią wartość. Np. dzieląc przez 60 otrzymamy różnicę w minutach, dzieląc przez 3600, różnicę w godzinach itd.

Jako trzeci argument można podać jedną z trzech możliwości, określającą w jakiej jednostce czasu ma być pokazywana różnica. Możliwe warianty to: "minut", "godzin", "dni". Funkcję można rozszerzyć o różnicę w miesiącach, latach itd.

Wywołanie funkcji:

Kod: php

<?php
// wyswietlanie roznicy dat
echo roznica_data("2008-10-1", "2008-10-2", "minut")."<br />";
echo roznica_data("2008-10-1", "2008-10-2", "godzin")."<br />";
echo roznica_data("2008-10-1", "2008-10-2", "dni")."<br />";
?>

Cały kod:

Kod: php

<?php
// funkcja obliczajaca roznice dat
function roznica_data($data_poczatek, $date_koniec, $jednostka_czasu="sekund")
{
 $tablica = array(minut=>60, godzin=>3600, dni=>86400, sekund=>1);
 return "Roznica miedzy data: ".$data_poczatek." a data ".$date_koniec." wynosi ".round(((strtotime($date_koniec) - strtotime($data_poczatek)) / $tablica[$jednostka_czasu]))." ".$jednostka_czasu;
}

// wyswietlanie roznicy dat
echo roznica_data("2008-10-1", "2008-10-2", "minut")."<br />";
echo roznica_data("2008-10-1", "2008-10-2", "godzin")."<br />";
echo roznica_data("2008-10-1", "2008-10-2", "dni")."<br />";
?>

Autor: Adam Suchowski

nowe Porady PHP » zobacz wszystkie
Dodaj komentarz









Komentarze
2 odpowiedzi
6 marzec 2018, godz. 5:33

Hi there everyone, it’s my first go to see at this site, and piece of writing is genuinely fruitful for me, keep up posting these types of content. cay ghep rang, cay ghep implant, nha khoa, cay ghep rang gia bao nhieu, cay ghep rang bao nhieu tien, chi phi cay ghep rang, nha khoa uy tin, ta5i nha khoa Thuan Kieu TPHCM. Thanh lap 2002 den nay, trung tam cay ghep rang, cay ghep Implant nha khoa THuan Kieu cay ghep rang Y: 1000 USD/implant, 800USD/implant Han Quoc.

30 październik 2017, godz. 12:40

Heya this is somewhat of off topic but I was wondering if blogs use WYSIWYG editors or if you have to manually code with HTML. I’m starting a blog soon but have no coding know-how so I wanted to get guidance from someone with experience. Any help would be greatly appreciated!

 
| | | |
Copyright © 2006-2013 egrafik.pl | Kontakt | Reklama | Projekty domów
jocker