PHP Cheat: date / tanggalan waktu

masih penasaran dengan basic bahasa PHP, sekarang explorasi waktu dan tanggal

// jam dan tanggal saat ini
$now = getdate();
$currentTime = $now[“hours”] . “:” . $now[“minutes”] . “:” . $now[“seconds”];
$currentDate = $now[“mday”] . “.” .$now[“mon”] . “.” . $now[“year”];
echo “now $currentTime on $currentDate”;
// now 12:30:20 on 13.9.2009
print_r($now);
// Array ( [seconds] => 46 [minutes] => 38 [hours] => 12 [mday] => 13 [wday] => 0 [mon] => 9 [year] => 2009 [yday] => 255 [weekday] => Sunday [month] => September [0] => 1252816726 )

// Formating Timestamps -> ubah timestamp UNIX ke string human-readable
echo date(“d M Y”, mktime()) . “<br>”; // tanggal
// 13 Sep 2009
echo date(“h:i:s A”, mktime()) . “<br>”; // jam
// 01:08:52 PM
echo date(“l, d F Y, h:i:s A”, mktime()) . “<br>”; // waktu dengan Timezone
// Sunday, 13 September 2009, 01:09:16 PM
echo date(“h:i:s A T”, mktime()) . “<br>”; // data dan waktu format ISO8601
// 01:09:56 PM KRAST

// mengecek valid nya tanggal

echo checkdate(31, 4, 2006) ? “Valid” : “Not”;
// Not // mm, dd, yyyy
echo checkdate(2, 29, 2006) ? “Valid” : “Not”;
// Not // mm, dd, yyyy
echo checkdate(9, 13, 2009) ? “Valid” : “Not”;
// Valid // mm, dd, yyyy

// String ke Timestamp
$ts = strtotime(“20030607”);
echo ($ts === -1) ? “Invalid String” : date(“l, d F Y h:i:s A”, $ts);
// Saturday, 07 June 2003 12:00:00 AM

// fungsi dalam waktu dalam perintah english
// asumsi hari adalah “Sunday, 13 September 2009, 01:39:58 PM”
$ts = strtotime(“next Sunday”);
echo ($ts === false) ? “Invalid” : date(“l, d F Y h:i:s A”, $ts);
// Sunday, 20 September 2009 12:00:00 AM
$ts = strtotime(“2 weeks 4 hours ago”);
echo ($ts === false) ? “Invalid” : date(“l, d F Y h:i:s A”, $ts);
// Sunday, 30 August 2009 09:39:58 AM
$ts = strtotime(“next 2 days”);
echo ($ts === false) ? “Invalid” : date(“l, d F Y h:i:s A”, $ts);
// Invalid
$ts = strtotime(“next days”); // bagaimana cara 2 hari kemudian
echo ($ts === false) ? “Invalid” : date(“l, d F Y h:i:s A”, $ts);
// Monday, 14 September 2009 01:44:49 PM

// tahun kabisat -> bisa di bagi 4 atau 400, tapi tidak 100
function kabisat($thn) {
return (($thn%400 == 0) || ($thn%4 == 0 && $thn%100 != 0)) ? 1 : 0;
}
echo “1000 ? ” . (kabisat(1000)? “kabisat”:”biasa”) . “<br>”; // biasa
echo “2000 ? ” . kabisat(2000) . “<br>”; // 1
echo “2004 ? ” . (kabisat(2004)? “kabisat”:”biasa”) . “<br>”; // kabisat
echo “2009 ? ” . kabisat(2009) . “<br>”; // 0

// tahun kabisat (simple)
function kabisat2($thn){
return checkdate(2, 29, $thn);
}
echo “2004 ? ” . (kabisat2(2004)? “kabisat”:”biasa”);
// 2004 ? kabisat

// jumlah hari dalam bulan (3 February 2004)
echo date(“t”, mktime(0, 0, 0, 2, 3, 2004)); // 29

// menentukan hari ke berapa dalam tahun (3 February 2009)
echo date(“z”, mktime(0, 0, 0, 2, 3, 2009))+1; // 34

// menentukan minggu keberapa dalam tahun (3 February 2009)
echo date(“W”, mktime(0, 0, 0, 2, 3, 2009)); // 06

// menemukan jumlah hari dan tahun pada waktu tertentu
$jh = date(“z”, mktime(0, 0, 0, 12, 31, 2009));
$jm = date(“W”, mktime(0, 0, 0, 12, 31, 2009));
echo “terdapat $jh dan $jm, pada tahun 2009”;
// terdapat 365 dan 53, pada tahun 2009

// menemukan nama hari pada hari dan bulan tertentu
$tr = mktime(0, 0, 0, 9, 13, 2009);
$d = date(“l”, $tr);
echo “13 09 2009 is ” .$d; // sunday

// convert waktu local ke Greenwich Mean Time (GMT)
echo gmdate(“H:i:s d-M-y T”);
// 06:42:43 13-Sep-09 GMT
echo gmdate(“H:i:s d-M-y T”, mktime(4, 30, 0, 2, 2, 2005));
// 21:30:00 01-Feb-05 GMT

// pengubahan antara Zona waktu yang berbeda
function getLocalTime($ts, $offset) {
return ($ts – date(“Z”, $ts)) + (3600 * $offset);
}
echo date(“H:i:s d-m-y”, getLocalTime(mktime(), 7)) . ” EST<br>”;
// 13:54:32 13-09-09 EST //jakarta
echo date(“H:i:s d-m-y”, getLocalTime(mktime(), 8)) . ” EST<br>”;
// 14:54:32 13-09-09 EST //singapura

// mengubah jumlah menit ke jam
$mm = 156;
echo sprintf(“%02dh %02dm”, floor($mm/60), $mm%60);//02h 36m

// waktu jam:menit ke jumlah menit
$hhmm = “02:36”;
$arr = explode(“:”, $hhmm);
echo $arr[0]*60 + $arr[1] . ” menit”; // 156 menit

Published by

G3n1k

just to remember what i had known :)

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 )

Twitter picture

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

Facebook photo

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

Google+ photo

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

Connecting to %s