Perbedaan waktu komputer dengan PHP-MySQL

date-phpDalam 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:
 
 
  1. Tulis script PHP berikut
    <?php 
    echo date("Y-m-d H:i:s"); 
    ?>
    Apakah hasilnya sama dengan waktu di komputer anda ?
  2. 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.
  1. (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.
  2. 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.
  3. (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.  

The power of documents

Kami sajikan dengan bahasa yang mudah dengan disertai command line yang bisa di copy-paste sehingga memudahkan untuk melakukan modifikasi command line