Dalam pemrograman PHP pasti mengenal dengan yang namanya
date (yang berfungsi untuk mendapatkan informasi waktu). Anda pasti pernah mengalami hal seperti yang saya alami yakni perbedaan waktu antara komputer dengan data waktu yang didimpan dengan database. database setahu saya tidak pernah mengalami perbedaan dengan komputer tetapi tidak menutup kemungkinan bisa terjadi perbedaan, sedangkan untuk PHP yang biasa kita manfaatkan untuk mendapatkan waktu dan memasukkannya ke database dengan waktu saat itu/ini ada kemungkinan mengalami perbedaan bisa selisih 1 jam lebih lambat maupun lebih. Untuk mengecek waktu coba anda lakukan hal berikut:
- Tulis script PHP berikut
<?php
echo date("Y-m-d H:i:s");
?>
Apakah hasilnya sama dengan waktu di komputer anda ? - Tuliskan sintak MySQL berikut
select now();
Apakah hasilnya sama dengan waktu di komputer anda ?
Sebagai seorang programming pasti tidak asing dengan perbedaan waktu semacam ini, tetapi bagi pemula pasti akan kebingungan Kasus ini saya alami saat menggunakan
xampp bahkan terjadi selisih sekitar 6 jam hampir menyamai dengan waktu GMT. sebenarnya ini bisa kita tangani dengan dua cara berikut silahkan anda pilih yang menurut anda mudah untuk dilakukan.
- (untuk kasus no 1) Merubah konfigurasi php.ini yang berada pada folder php di xampp anda. jika anda bukan pengguna xampp silahkan cari folder php pada folder instalasi webserver anda. setelah anda menemukan file php.ini maka buka dan cari baris yang memiliki text "date.timezone" (tanpa tanda kutip) Silahkan ganti value-nya menjadi "Asia/Jakarta" kemudian save dan restart webserver anda.
- Atau (untuk kasus no 1) anda juga bisa menambahkan script PHP untuk menge-set timezone dengan script berikut
<?php
date_default_timezone_set('Asia/Jakarta');
?>
Letakkan script tersebut di paling atas / sebelum anda menjalankan menuliskan script date. - (untuk kasus no 2) Sebenarnya ini jarang terjadi tapi buat berjaga-jaga maka saya sampaikan juga caranya yang dilakukan hampir sama dengan langkah no 1. Anda harus membuka dan mengganti value default-time-zone dengan "Asia/Jakarta" pada file my.ini yang berada pada folder mysql/bin jika anda tidak menemukan text time-zone maka anda dapat menambahkan sintak berikut
default-time-zone = "Asia/Jakarta"
Kemudian save dan restart mysql anda
Anda juga dapat menggunakan cara manual pada PHP yakni dengan script berikut:
<?php
echo gmdate("Y-m-d H:i:s", time()+60*60*7);
?>
fungsi gmdate() adalah untuk mendapatkan informasi waktu GMT sedangkan time()+60*60*7 adalah bermakna waktu dalam 7 jam, karena time() akan menghasilkan waktu ukuran sejak 1 Januari 1970 00:00:00 dan 60*60*7 merupakan hasil dari jumlah detik untuk 7 jam. Ditambahkan 7 jam karena waktu untuk Indonesia adalah +7 jam dari waktu GMT. Sekian. semoga informasi ini dapat membantu anda.