A PHP 5 új dátum függvényei

Néha érdemes lehet átböngészni a PHP doksiját, mert szép számmal akadnak benne olyan függvények, melyek nagyon meg tudják könnyíteni a dolgunkat és most nem egy kezdő PHP fejlesztőre gondolok, hanem olyanokra, akik évek óta használják a PHP-t. 🙂

Nézzük.

Napkelte, napnyugta…

Engem nagyon zavart, hogy sehol nem találtam olyan időjárás jelentést (nem Magyarországon), ahol ki van írva, hogy mikor kel és nyugszik a nap, a PHP-ban erre van beépített függvény:

 <?php  
echo date("Y-m-d"). ', napkelte Budapesten: ' .date_sunrise(time(), SUNFUNCS_RET_STRING, 47.29, 19.2, 90, 1)."<br />";
echo date("Y-m-d"). ', napnyugta Budapesten: ' .date_sunset(time(), SUNFUNCS_RET_STRING, 47.29, 19.2, 90, 1);
?>

Persze, persze ilyet ritkán használ az ember egy átlagos projekt során, de azért jó tudni, hogy létezik.

Vagy például tudjuk-e, hogy a PHP az 5.3-as verzió óta egészen jól bánik a dátum intervallumokkal? Külön prototípust készítettek rá, és egészen jól használható…

A formázáshoz szükséges leírást itt olvashatjuk:

http://en.wikipedia.org/wiki/Iso8601#Durations

és egy példa:

 <?php  
// 0 period, 0 year, 5 days, 10 hours, 20 minutes and 3 seconds.
$interval = 'P0M5DT10H20M3S';
$i = new DateInterval( $interval );
$d = new DateTime('2010-01-01 10:05');
date_add( $d, $i );
echo $d->format( 'Y-m-d H:i:s' ) . "<br />";

// 1 period, 0 year, 5 days, 10 hours, 20 minutes and 3 seconds.
$interval = 'P1M5DT10H20M3S';
$i = new DateInterval( $interval );
$d = new DateTime('2010-01-01 10:05');
date_add( $d, $i );
echo $d->format( 'Y-m-d H:i:s' ) . "<br />";
?>

Ez eléggé kényelmes…

Vagy tudjuk-e, hogy szintén az 5.3-as PHP óta lehetőségünk van egészen kényelmesen használni az időzónákat, próbáljuk ki például ezt:

 <?php  
$tz = new DateTimeZone("Europe/Budapest");
print_r($tz->getLocation());
print_r(timezone_location_get($tz));
?>

A koordinátákat is visszaadja…szerinem nagyon jó.

Azt sem túl régi lehetőség, hogy a $SERVER tömb tartalmaz egy ilyen értéket: echo $_SERVER[‘REQUEST_TIME’];
ez visszaadja a szerveridőt időbélyeg formában.

 <?php  
echo $_SERVER['REQUEST_TIME'];
?>

végül még egy újdonság, a date_diff(), mellyel két időpont közti különbséget kaphatjuk meg:

 <?php  
$start = new DateTime('01-01-1980 Europe/Budapest');
$end = new DateTime('02-01-1980 Europe/London');
$interval = $start->diff($end);
var_dump($interval);
?>

Ami még érdekes és a fenti példából jól látszik, hogy a dátum objektumként kezelhető… 🙂

Ennyi lett volna, de még vannak ezen kívül újdonságok a PHP súgójában:

This entry was posted in Date, dátum, php. Bookmark the permalink.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s