Tutorial 2 – Cara Merubah Time Zone di OpenCart
Tutorial 2 – Cara Merubah Time Zone di OpenCart
Secara teknis, Cara Merubah Time Zone di OpenCart cukup sederhana. Hanya saja sebelum lebih jauh kesana kita harus mengetahui dahulu alasan mengapa perlu merubah time zone di OpenCart. Sebelum lebih jauh ke tutorial bagaimana cara merubah time zone di OpenCart. Terdapat ekstensi OpenCart yang sangat berguna bagi pengguna, yakni System Information. Ekstensi ini secara khusus dibuat untuk mendeteksi lingkungan kerja OpenCart. Kita dapat melihat banyak informasi system termasuk selisih waktu yang ada pada PHP dan database.
Mengapa seting time zone pada OpenCart?
OpenCart sendiri dibuat dengan bahasa PHP dimana seting terhadap time zone akan menjadi acuan yang digunakan oleh semua fungsi tanggal dan waktu di skrip. Hal ini penting untuk semua proses yang memerlukan waktu berjalan dengan baik. Relevansinya pada sistem OpenCart, dengan seting time zone yang benar maka hal-hal yang terkait waktu seperti discount, special product, dan sebagainya dapat bekerja sesuai keinginan.
Pada beberapa kasus bisa terjadi dimana waktu yang disimpan di database tidak sama dengan yang ditampilkan di pengguna. Contohnya pada order history yang sangat peka terhadap pewaktuan.
Apakah seting time zone wajib pada OpenCart?
Secara umum, Ya!. Secara default OpenCart akan membuat time zone UTC sebagai default time zone, Artinya selisih 7 jam dari time zone WIB seperti contoh gambar berikut.
Kemudian, karena secara default dibuat untuk online trading secara global. Beberapa owner yang menyimpan file websitenya di server luar negeri, ini adalah wajib. Misal kita berada di Jakarta, Indonesia yang memiliki time zone asia/jakarta. Selisih 7 jam dari GMT (GMT +7). Jika hosting berada di chicago, Amerika. Maka selisih waktunya 12 Jam. Sehingga jika semua data entry yang dilakukan di Jakarta harus disesuaikan sesuai waktu di Jakarta. Bukan waktu server di Chicago. Artinya harus diberikan offset 12 jam.
Merubah Time Zone di OpenCart
Secara umum seting harus dilakukan untuk sistem PHP dan MySQL. Mengapa demikian?. Karena bisa jadi server database tidak pada satu time zone dengan server PHP. Sementara banyak sekali statement SQL di OpenCart yang menggunakan build int function NOW() yang berarti mengambil TIMESTAMP yang ada di server MySQL saat itu.
Ada beberapa hal yang harus dilakukan untuk merubah time zone. Teknis merubah time zone di OpenCart adalah sebagai berikut.
Seting Time Zone PHP
Akses system/startup.php dan temukan baris kode berikut:
if (!ini_get('date.timezone')) { date_default_timezone_set('UTC'); }
Comment kode diatas dan tambahkan baris kode baru:
date_default_timezone_set('Asia/Jakarta');
Seting ke Asia/Jakarta untuk time zone WIB.
Seting time zone database
Akses system/library/db/mysqli.php. Cari frase kode:
$this->connection->query("SET SQL_MODE = ''");
atau, kode
$this->link->query("SET SQL_MODE = ''");
pada OpenCart 2.0.1.1
kemudian tambahkan kode berikut setelahnya:
$dt = new \DateTime(); $this->connection->query("SET time_zone='" . $dt->format('P') . "';");
Kode diatas akan melakukan seting time zone dengan offset yang dihasilkan dari $dt->format(‘P’).
Sekarang jika lihat pada System Information.
Test Seting Time Zone
Selain itu Ada juga bisa test order secara langsung dan lihat waktu yang tercatat di database.
Jika waktunya sama dengan waktu saat Anda order, maka seting time zone telah berhasil.
Sampai disini kita telah menyeting time zone dengan benar.
Semoga bermanfaat.
Leave Your Comment