06.12.2024
Dionizja, Leontyna, Mikołaj, Jarema, Emilian, Jarogniew
Programowanie PHP - Różnica Czasu Pomiędzy Wyznaczonymi Datami
Klasa pozwala na obliczenie różnicy pomiędzy podanymi datami, zarówno w przeszłości jak i przyszłosci. W jednym przypadku będzie to odliczanie wstecz, a w drugim do określonej daty. Czas może być w zależności od konfiguracji podawany w formie : lat, miesięcy, tygodni, dni, godzin, minut i sekund.
WSPARCIE / FORUM
CODE : php
/**
* the difference between two dates
* copyright : (c) 2012 Andrzej Krokos
* version PHP : 5
* author : shreker983@gmail.com
* licence : GPL
*
* file: diffclass.php
*/
class dif_dates
{
// valid dates
function checkdateformat( $date )
{
if ( preg_match ( "/^([0-9]{4})-([0-9]{1,2})-([0-9]{1,2}) ([0-9]{1,2}): ([0-9]{1,2}):([0-9]{1,2})$/" , $date ) )
{
return true ;
}
else
{
return false ;
}
}
// manipulation & show dates
function calcdiff( $datefrom , $dateto , $spaces , $showopc )
{
if ( $sesur = $this -> checkdateformat ( $datefrom ) != true )
{
echo 'bad date from !' ;
}
else if ( $sesur = $this -> checkdateformat ( $dateto ) != true )
{
echo 'bad date to !' ;
}
else
{
$names = array ( ' y' , ' m' , ' w' , ' d' , ' h' , ' m' , ' s' ) ; $show = '' ;
if ( $dateto < $datefrom )
{
$dtime = $datefrom - $dateto ;
}
else
{
$dtime = $dateto - $datefrom ;
}
$dyear = floor ( $dtime / 31556926
) ; if ( $dyear > 0)
{
$dtime = $dtime - ( $dyear * 31556926) ;
{
$show .= '<b>' . $dyear . '</b>' . $names [ 0] ;
}
}
$dmonth = floor ( $dtime / 2629743
. 83
) ; if ( $dmonth > 0)
{
$dtime = $dtime - ( $dmonth * 2629743. 83) ;
{
$show .= empty ( $show ) ?
'' : $spaces ; $show .= '<b>' . $dmonth . '</b>' . $names [ 1] ;
}
}
$dweek = floor ( $dtime / 604800
) ; if ( $dweek > 0)
{
$dtime = $dtime - ( $dweek * 604800) ;
{
$show .= empty ( $show ) ?
'' : $spaces ; $show .= '<b>' . $dweek . '</b>' . $names [ 2] ;
}
}
$ddays = floor ( $dtime / 86400
) ; if ( $ddays > 0)
{
$dtime = $dtime - ( $ddays * 86400) ;
{
$show .= empty ( $show ) ?
'' : $spaces ; $show .= '<b>' . $ddays . '</b>' . $names [ 3] ;
}
}
$dhours = floor ( $dtime / 3600
) ; if ( $dhours > 0)
{
$dtime = $dtime - ( $dhours * 3600) ;
{
$show .= empty ( $show ) ?
'' : $spaces ; $show .= '<b>' . $dhours . '</b>' . $names [ 4] ;
}
}
$dminut = floor ( $dtime / 60
) ; if ( $dminut > 0)
{
$dtime = $dtime - ( $dminut * 60) ;
{
$show .= empty ( $show ) ?
'' : $spaces ; $show .= '<b>' . $dminut . '</b>' . $names [ 5] ;
}
}
if ( $dtime > 0)
{
{
$show .= empty ( $show ) ?
'' : $spaces ; $show .= '<b>' . $dsec . '</b>' . $names [ 6] ;
}
}
if ( $dateto < $datefrom )
{
$show = "- {$show} " ;
}
return $show ;
}
}
}
$t = new dif_dates( ) ;
echo $t -> calcdiff ( '2010-10-23 12:00:00' , date ( 'Y-m-d G:i:s' ) , ' ' , 'ymwdhis' ) ; Dzięki zastosowaniu Ajax'a możemy na bieżąco odświeżać div z załadowanym plikiem klasy, co pozwoli nam na bieżąco wyswietlać różnicę czasu.
CODE : html
<!-- file: diiff.html -->
<script src = "http://code.jquery.com/jquery-latest.js" ></ script >
<script type = "text/javascript" > $(document).ready(function()
{
$("#responsecontainer").load("diffclass.php");
var refreshId = setInterval(function() {
$("#responsecontainer").load('diffclass.php?randval=' + Math.random());
}, 1000);
$.ajaxSetup({ cache: false });
});
<div id = "responsecontainer" ></ div >
online : 1 użytkownik, dziś odwiedziło : 30 osób
Zgodnie z nowelizacją ustawy o Prawie Telekomunikacyjnym informujemy, że strona krokos.net.pl w swoim działaniu korzysta z zapisywanych informacji w postaci ciasteczek (ang. cookies).
powered by scms © 2004 - 2024
design by sid