Apa kabar sobat semua... waahhh lama juga ya tidak menyapa sobat setia hehehe.. oke, pada kesempatan kali ini saya akan berbagi tutorial bagaimana cara merubah timezone pada CodeIgniter.
Untuk apa sih timezone itu ?
Sesuai dengan namanya, timezone digunakan untuk merubah lokasi waktu pada project yang kita buat. Misalkan kita ada di indonesia dan server tempat kita hosting terletak di amerika, maka waktu yang diambil pun akan mengikuti server. Pastinya hal ini sangat berpengaruh jika kita bermain dengan fungsi-fungsi yang berhubungan dengan waktu seperti fungsi date(), time() dan masih banyak lagi.
Nah, dengan mengeset timezone kita bisa merubah pengambilan waktu sesuai waktu tempat kita di indonesia yaitu GMT +7.
Beberapa waktu lalu sempat saya dibuat pusing gara-gara lupa mengeset timezone hehehe.. bagaimana tidak pusing coba, waktu itu project dijalankan di server lokal (localhost) bisa berjalan dengan baik, namun waktu project di upload ke server malah muncul beberapa masalah yang berhubungan dengan waktu seperti saat pengambilan data. usut punya usut ternyata saya lupa menambahkan default timezone nya dan setelah saya tambahkan satu baris tersebut project pun bisa berjalan dengan sangat baik hehehe..
Lahh kok malah curhat :P, Baik kita langsung ke pokok pembahasan saja ya sob. Untuk merubah default timezone pada CodeIgniter sendiri tergolong sangat mudah sob, karena kita hanya perlu meletakkan satu baris code saja. nah penasaran ? silahkan ikuti langkah langkah di bawah ini :
- Buka file config.php
Yang pertama harus kita lakukan adalah membuka file config.php yang terletak pada folder application/config/
- Tambahkan script
date_default_timezone_set()
Setelah sobat buka file config.php sekarang silahkan sobat tambahkan script berikut ini pada file config.php :
date_default_timezone_set("Asia/Jakarta");tepat di bawah script :
defined('BASEPATH') OR exit('No direct script access allowed');atau seperti pada gambar di bawah ini :
- Simpan Perubahan
Langkah terakhir, silahkan sobat simpan file config.php yang telah dimodifikasi tadi.
Nah, jika langkah nomor 1 sampai 3 sudah sobat lakukan, silahkan sobat cek pengaturan timezone nya apakah sudah sesuai dengan lokasi kita. Sobat bisa menggunakan script di bawah ini :
<?php echo date_default_timezone_get(); ?>Baik sobat, saya rasa mungkin cukup ini yang bisa saya bagikan kali ini, semoga sedikit coretan ini bisa bermanfaat untuk sobat semua. Oh iya, untuk list timezone bisa dilihat pada link di bawah ini :
php.net/manual/en/timezones.php
Bagi anda yang mempunyai masalah atau warning funtion.date, berikut cara setting Time Zone untuk PHP 5.3.0,
biasanya error yang dijumpai di website adalah seperti ini:
Warning: date() [function.date]: It is not safe to rely on the system’s timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected ‘Asia/Jakarta’ for ‘WIT/7.0/no DST’ instead in /home/xxxxxx/public_html/config.php on line 99
dari error diatas dapat diartikal bahwa ada kesalahan pada timezone setting jadi kita harus melakukan setting sesuai yang di infokan.
We selected ‘Asia/Jakarta’ for ‘WIT/7.0/no DST’ instead in /home/xxxxxx/public_html/config.php on line 99
ini menandakan bahwa skrip website anda memilih setting waktu ‘Asia/Jakarta’ sehingga kita harus menyesuaikan dengan setting waktu yang ada di skrip website kita.
Caranya adalah sebagai berikut:
Buka file php.ini, jika file blm ada anda bisa create new file php.ini
date.timezone = {tulis timezone disini}
contohnya bila di indonesia menggunakan time zone berikut:
date.timezone = Asia/Jakarta
kemudian Save file php.ini dan selesai
Sering kali kita merasa kesulitan bahwa waktu yang terdapat pada PHP tidak sama dengan waktu yang sebenarnya. Apa lagi waktu yang ingin kita simpan di database sangat penting sekali terhadap perubahan yang dilakukan pada program. Untuk mengetahui zona waktu yang sendang kita gunakan, kita dapat menggunakan script sebagai berikut:
<?php echo date_default_timezone_get();?>Script diatas akan menampilkan zona waktu sesuai dengan yang ada pada komputer server kita. Zona waktu tersebut dapat saja berbeda dengan zona waktu tempat tinggal kita, untuk itu kita harus menyesuaikan zona waktu di PHP agar sesuai dengan yang kita inginkan. Berikut zona waktu yang ada di Indonesia.
sdsdsds- Asia/Jakartaa
- Asia/Ujung_Pandang
- Asia/Pontianak
- Asia/Makassar
- Asia/Jayapura
Berikut merupakan script untuk merubah zona waktu yang sesuai dengan lokasi saya saat ini.
<?php date_default_timezone_set('Asia/Jakarta');?>Kode diatas akan merubah zona waktu menjadi waktu Asia/Jakarta.
Bagaimana cara memodifikasi pengaturan PHP timezone untuk website saya?
Mengatur timezone website dengan fungsi PHP
Ditulis oleh Ratu Mahardhika
Diperbarui lebih dari seminggu yang lalu
Konfigurasi waktu server global Anda tidak dapat diubah. Namun, Anda dapat menggunakan fungsi PHP date_default_timezone_set untuk mengatur zona waktu website.
Di bawah ini merupakan contoh code yang mengatur dan mengecek zona waktu sekarang:
<?phpdate_default_timezone_set("Asia/Bangkok");
echo date_default_timezone_get();
?>
CATATAN:
Lihat daftar timezone PHP yang tersedia di sini.
Jangan pernah bergantung ke konfigurasi server untuk menentukan timestamp, karena kita belum tentu tau/bisa menyesuaikan timezone dengan yang kita kehendaki.
Bila anda terbiasa menggunakan
untuk mengambil waktu saat ini di server/komputer yang anda gunakan. Cara tersebut bergantung dengan konfigurasi date.timezone di php.ini, setiap server yang saya gunakan menggunakan
date.timezone = 'Asia/Jakarta'menggunakan zona waktu WIB. Jika anda tidak memiliki hak untuk merubah timezone di php.ini, gunakan Datetime disisipkan zona waktu yang dikehendaki.
Berikut ini contoh timestamp untuk zona waktu Indonesia (Jakarta (WIB), Makassar (WITA), Jayapura (WIT)).
<?php echo "zona waktu dari server: " . date('Y-m-d G:i:s') . " \n"; $tz = 'Asia/Jakarta'; $dt = new DateTime("now", new DateTimeZone($tz)); $timestamp = $dt->format('Y-m-d G:i:s'); echo "WIB : $timestamp \n"; $tz = 'Asia/Makassar'; $dt = new DateTime("now", new DateTimeZone($tz)); $timestamp = $dt->format('Y-m-d G:i:s'); echo "WITA : $timestamp \n"; $tz = 'Asia/Jayapura'; $dt = new DateTime("now", new DateTimeZone($tz)); $timestamp = $dt->format('Y-m-d G:i:s'); echo "WIT : $timestamp \n";hasil menjalankan script diatas
zona waktu dari server: 2020-02-10 10:46:34 WIB : 2020-02-10 10:46:34 WITA : 2020-02-10 11:46:34 WIT : 2020-02-10 12:46:34bandingkan dengan server yang tidak diset timezone di php.ini
zona waktu dari server: 2020-02-10 3:46:34 WIB : 2020-02-10 10:46:34 WITA : 2020-02-10 11:46:34 WIT : 2020-02-10 12:46:34terlihat perbedaanya kan di zona waktu dari server. Dengan menggunakan menyetting zona waktu yang diinginkan kita akan mendapatkan hasil yang konsisten.