Bagi pelanggan yang hosting websitenya di Rumahweb, mungkin akan mengalami permasalahan dengan setting waktu. Yang mana waktu tidak ditampilkan sesuai dengan waktu yang ada di Indonesia. Misalnya ketika anda mencoba menampilkan waktu dengan perintah berikut:
PLAIN TEXTPHP:
$waktu = mktime(date("G"), date("i"), date("s"), date("n"), date("j"), date("Y"));
echo 'Waktu sekarang: '.date("H:i:s", $waktu);
Misalnya jam di Indonesia menunjukkan pukul 11:22, ternyata dengan script diatas waktu yang ditampilkan adalah:
Waktu sekarang: 22:22:00
Karena server Rumahweb terdapat di US, maka perbedaan waktu yang terjadi adalah waktu US lebih lambat 13 jam.
Bagaimana supaya script PHP kita dapat menampilkan waktu yang sesuai dengan di Indonesia?
Yang pertama, kita cari perbedaan waktu antara waktu di server dengan waktu GMT (Greenwich Mean Time), yaitu GMT - 6. Kemudian kita lakukan perhitungan berdasarkan angka perbedaan tersebut sehingga kita dapatkan waktu GMT.
Yang kedua, setelah kita dapatkan waktu GMT, kita lakukan perhitungan berdasarkan perbedaan waktu antara waktu GMT dengan waktu di Indonesia, yaitu GMT + 7, sehingga kita dapatkan waktu Indonesia.
Untuk lebih jelasnya, silakan melihat contoh script PHP untuk menampilkan waktu yang sesuai dengan waktu di Indonesia:
PLAIN TEXTPHP:
// Ambil waktu server terkini
$dat_server = mktime(date("G"), date("i"), date("s"), date("n"), date("j"), date("Y"));
echo 'Waktu server (US): '.date("H:i:s", $dat_server);
// Ambil perbedaan waktu server dengan GMT
$diff_gmt = substr(date("O",$dat_server),1,2);
// karena perbedaan waktu adalah dalam jam, maka kita jadikan detik
$datdif_gmt = 60 * 60 * $diff_gmt;
// Hitung perbedaannya
if (substr(date("O",$dat),0,1) == '+') {
$dat_gmt = $dat_server - $datdif_gmt;
} else {
$dat_gmt = $dat_server + $datdif_gmt;
}
echo 'Waktu GMT: '.date("H:i:s", $dat_gmt);
// Hitung perbedaan GMT dengan waktu Indonesia (GMT+7)
// karena perbedaan waktu adalah dalam jam, maka kita jadikan detik
$datdif_id = 60 * 60 * 7;
$dat_id = $dat_gmt + $datdif_id;
echo 'Waktu Indonesia (Asia/Jakarta): '.date("H:i:s", $dat_id);
Tempilan setelah dijalankan:
Waktu server: 22:36:27
Waktu GMT: 04:36:27
Waktu Indonesia (Asia/Jakarta): 11:36:27
*) Tambahan: Diakhir tiap echo script diatas terdapat tag html "br" yang tidak bisa ditampilkan, karena akan selalu terhapus, anda dapat menambahkan sendiri.